Carregando...

Códigos de Erro do Python

Os códigos de erro do Python representam exceções que ocorrem quando o programa encontra operações inválidas ou incorretas. Compreender esses erros é essencial para o desenvolvimento de sistemas robustos e confiáveis, permitindo que desenvolvedores identifiquem rapidamente a origem de falhas, corrijam bugs e implementem soluções de forma eficiente. Esses erros podem surgir durante o desenvolvimento quando há problemas de sintaxe, tipos de dados incorretos, acesso a recursos inexistentes ou lógica de programação inadequada. Conceitos-chave incluem sintaxe, tipos de exceção, técnicas de depuração e tratamento de erros. Este guia fornece uma referência completa dos erros mais comuns do Python, descrevendo quando e como eles ocorrem, exemplos práticos e melhores práticas de tratamento. O leitor aprenderá a detectar, capturar e corrigir erros, além de aplicar estratégias de depuração avançadas que aumentam a estabilidade e a confiabilidade de aplicações backend críticas.

Por exemplo, considere um sistema que processa entradas de usuário, lê arquivos e se conecta a um banco de dados. Nesse cenário, erros como FileNotFoundError, ValueError ou ZeroDivisionError podem ocorrer. Para garantir a robustez, operações críticas são envolvidas em blocos try, e cada exceção é tratada em blocos except específicos. Isso permite reagir adequadamente a cada tipo de erro, registrar informações de depuração e aplicar soluções alternativas. O bloco finally assegura que recursos essenciais, como arquivos ou conexões com o banco de dados, sejam liberados mesmo em caso de erro. Essa abordagem evita falhas inesperadas, aumenta a manutenibilidade do código e garante que sistemas backend funcionem de forma estável e confiável em ambientes de produção.

Example

python
PYTHON Code
def process_data():
try:
# NameError: uso de variável não definida
print(variavel_indefinida)

# ZeroDivisionError: divisão por zero
resultado = 10 / 0

# ValueError: conversão inválida
numero = int("abc")

# FileNotFoundError: arquivo inexistente
with open("arquivo_inexistente.txt", "r") as f:
conteudo = f.read()

# AttributeError: chamada de método inexistente
[].appendx(1)

except NameError as ne:
print(f"Capturado NameError: {ne}")
except ZeroDivisionError as zde:
print(f"Capturado ZeroDivisionError: {zde}")
except ValueError as ve:
print(f"Capturado ValueError: {ve}")
except FileNotFoundError as fe:
print(f"Capturado FileNotFoundError: {fe}")
except AttributeError as ae:
print(f"Capturado AttributeError: {ae}")
except Exception as e:
print(f"Outras exceções capturadas: {e}")
finally:
print("Liberação de recursos e limpeza concluídas.")

process_data()

📊 Comprehensive Reference

Error Descrição Quando Ocorre Exemplo Observações
SyntaxError Erro de sintaxe Código inválido eval('x === 2') Ocorre em tempo de compilação
IndentationError Erro de indentação Indentação incorreta if True:\nprint("Oi") Subtipo de SyntaxError
TabError Mistura de tabulação e espaços Uso simultâneo de tab e espaço <tab> <space> print("Oi") Indentação uniforme necessária
NameError Variável não definida Uso de variável inexistente print(x) Erro comum em depuração
TypeError Tipo incorreto Operação com tipo inadequado 5 + "5" Python é dinamicamente tipado
ValueError Valor inválido Conversão ou valor inválido int("abc") Verificar entrada
IndexError Índice fora de alcance Acesso a índice inexistente lst = []; lst[1] Verificar comprimento da lista
KeyError Chave inexistente Acesso a chave de dicionário inexistente d = {}; d['x'] Uso de dict.get() pode evitar
AttributeError Atributo inexistente Chamada de método ou atributo inexistente [].appendx(1) Verificar nome do método
ZeroDivisionError Divisão por zero Denominador zero 10 / 0 Verificar denominador
ImportError Módulo não encontrado Módulo inexistente import modulo_inexistente Verificar instalação
ModuleNotFoundError Módulo não encontrado Módulo inexistente import nao_existe Python 3.6+
FileNotFoundError Arquivo não encontrado Arquivo inexistente open("naoexiste.txt") Verificar caminho
IsADirectoryError Esperado arquivo, diretório encontrado Abrindo diretório open("pasta") Dependente do SO
NotADirectoryError Esperado diretório, arquivo encontrado os.listdir("arquivo.txt") Dependente do SO
PermissionError Permissão insuficiente Acesso negado open("/root/file") Verificar permissões
OSError Erro do sistema Problema relacionado ao SO os.remove("/root/file") Base de outros erros
OverflowError Overflow numérico Valor muito grande 2.0**10000 Raro em Python 3
RecursionError Recursão excessiva Muitas chamadas recursivas def f(): f(); f() sys.setrecursionlimit()
MemoryError Memória insuficiente Dados muito grandes a = 'a'*10**10 Dependente do sistema
StopIteration Iterador esgotado Iterator vazio next(iter([])) Iteradores personalizados
AssertionError Falha em assert assert False Verificar condições
FloatingPointError Erro de ponto flutuante Operação FP inválida numpy.seterr(all='raise') NumPy
UnicodeError Erro de codificação/decodificação "ü".encode("ascii") Verificar encoding
UnicodeDecodeError Erro de decodificação b'\xff'.decode('utf-8') Leitura de arquivo
UnicodeEncodeError Erro de codificação "ü".encode("ascii") Encoding inválido
RecursionWarning Aviso de recursão Recursão profunda import warnings Não fatal
DeprecationWarning Aviso de função obsoleta Uso de função antiga warnings.warn("deprecated") Migrar código
RuntimeWarning Aviso de tempo de execução Problema potencial import warnings Não fatal
FutureWarning Aviso de mudanças futuras Alterações em futuras versões warnings.warn("future") Verificar compatibilidade
UserWarning Aviso do usuário Aviso customizado warnings.warn("user") Não fatal
PendingDeprecationWarning Obsolescência iminente Função será descontinuada warnings.warn("pending") Raro
ResourceWarning Recurso não liberado Arquivo não fechado open("file") Python 3+
ArithmeticError Erro aritmético Operação matemática inválida int("x")/0 Base para outros erros
BufferError Erro de buffer Operação inválida de buffer memoryview(b'').release() Raro
ConnectionError Erro de conexão Problema de rede requests.get("bad_url") Dependente de rede
BrokenPipeError Pipe quebrado Escrita em pipe fechado os.write(fd, b'data') Unix
ChildProcessError Erro de processo filho Problema em processo filho os.waitpid(-1) Raro
EOFError Fim inesperado de arquivo Entrada finalizada input() EOF Entrada vazia
EnvironmentError Erro de ambiente Problema de OS/ambiente os.remove("/root/file") Base OSError
GeneratorExit Saída de generator gen.close() Generators
IOError Erro de I/O Falha de leitura/escrita open("/root/file") Python 3 -> OSError
InterruptedError Interrompido System call interrompido os.read(fd, 0) Unix
LookupError Erro de pesquisa Pesquisa inválida d['x'] Base Lookup
ReferenceError Referência inválida Weak ref expirou import weakref Raro
RuntimeError Erro em tempo de execução raise RuntimeError() Erro geral
StopAsyncIteration Fim de async iterator async for Python 3.5+
SyntaxWarning Aviso de sintaxe Sintaxe suspeita warnings.warn("syntax") Não interrompe programa
SystemError Erro do sistema Erro interno do Python sys._getframe(0) Raro
SystemExit Saída do sistema sys.exit() Finaliza programa
TimeoutError Tempo esgotado Timeout de operação socket.settimeout() Rede
UnboundLocalError Variável local não atribuída Uso antes da atribuição x=1; def f(): print(x); x=2 Subtipo NameError
ZeroDivisionError Divisão por zero Denominador zero 10 / 0 Verificar denominador

🧠 Teste Seu Conhecimento

Pronto para Começar

Test Your Knowledge

Teste seu conhecimento sobre códigos de erro do Python

3
Perguntas
🎯
70%
Para Passar
♾️
Tempo
🔄
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo