Erros e Exceções em Python: Guia Completo e Avançado
No mundo da programação, erros não são inimigos, mas sim seus interlocutores mais honestos. Eles não tentam confundi-lo; eles apontam diretamente os pontos fracos no código e ajudam a tornar os programas mais confiáveis e estáveis. O Python possui um sistema de tratamento de erros poderoso e flexível, baseado no conceito de "exceções". Entender como as exceções funcionam, quais tipos existem e como tratá-las corretamente não é apenas uma habilidade, mas uma transição para um novo nível de maestria para qualquer desenvolvedor Python, do iniciante ao profissional.
Este artigo é seu guia completo pelo mundo dos erros e exceções em Python. Vamos percorrer o caminho desde o básico até técnicas avançadas que permitirão que você escreva código verdadeiramente tolerante a falhas.
O que é um erro em Python? Os dois lados do problema
Antes de tudo, é importante distinguir dois tipos principais de erros. Imagine que você está tentando falar em um idioma estrangeiro:
- Erros de Sintaxe (Syntax Errors): É como se você construísse uma frase com erros gramaticais grosseiros. Seu interlocutor (o interpretador Python) simplesmente não vai entender você e interromperá a conversa antes mesmo de você terminar o pensamento. O código com esses erros nem sequer começará a ser executado.
- Exceções (Exceptions): Você construiu uma frase gramaticalmente correta, mas seu significado no contexto atual levou a uma situação absurda. Por exemplo, você pediu "passe o sal" em uma mesa onde não há sal. O interlocutor entendeu a frase, mas não conseguiu executá-la. Assim é o Python: o código é sintaticamente correto, mas durante a execução surge uma situação inesperada (divisão por zero, acesso a um arquivo inexistente). Se essa situação não for prevista e tratada, o programa será encerrado abruptamente.
Erros de Sintaxe: os guardiões da gramática do código
Este é o tipo de erro mais fácil de corrigir, pois o interpretador Python geralmente aponta exatamente o local problemático, como um professor sublinhando um erro em um ditado.
SyntaxError
O que é esse erro?
O erro de sintaxe mais comum. Ele significa que você violou as regras da linguagem: esqueceu dois pontos, não fechou um parêntese, usou um operador inválido e assim por diante.
Exemplo de código que causa o erro
# Exemplo 1: Dois pontos esquecidos após a condição
x = 10
if x > 5
print("x é maior que 5")
Traceback:
File "main.py", line 2
if x > 5
^
SyntaxError: expected ':'
# Exemplo 2: Parêntese não fechado
print("Olá, mundo"
Traceback:
File "main.py", line 1
print("Olá, mundo"
^
SyntaxError: '(' was never closed
Como corrigir?
Leia atentamente a mensagem de erro. O interpretador geralmente coloca um acento circunflexo (^) abaixo do local onde detectou o problema. Corrija o código de acordo com a sintaxe do Python.
# Código corrigido
x = 10
if x > 5:
print("x é maior que 5")
print("Olá, mundo")
IndentationError / TabError
O que é esse erro?
Um erro exclusivo do Python, relacionado à indentação. O Python usa indentação para definir blocos de código. O IndentationError ocorre quando a indentação é usada incorretamente, e o TabError ocorre quando tabulações e espaços são misturados.
Exemplo de código que causa o erro
def minha_funcao():
print("Este é o corpo da função") # Indentação incorreta
Traceback:
File "main.py", line 2
print("Este é o corpo da função")
^
IndentationError: expected an indented block
Como corrigir?
Mantenha a consistência na indentação. O padrão PEP 8 recomenda usar 4 espaços para cada nível de aninhamento. Configure seu editor de código para substituir automaticamente tabulações por 4 espaços — isso evitará muitos problemas.
# Código corrigido
def minha_funcao():
print("Este é o corpo da função") # Indentação correta com 4 espaços