Se você já gastou um dia programando com Python, vai saber que lidando com erros é parte da vida de um programador. Mas vamos ser sinceros, é chato não é? Nesse post vamos falar de erros em geral, e como tratar esses erros com exceções em Python.

Antes de mais nada, quero esclarecer uma coisa. Encarar erros quando programando é a coisa mais normal que tem. Não se assuste quando tiver que trabalhar um dia inteiro tentando consertar um erro. Já fiz isso muitas vezes.

Mas, isso acontece quando o Python encontra uma exceção – um problema que interrompe o fluxo normal do código.

Neste post, você vai aprender:- O que são exceções em Python.- Como usar try e except para evitar que seu programa quebre.- Exemplos práticos para lidar com erros comuns.

O Que São Exceções em Python?

Exceções são erros que acontecem durante a execução de um programa. É uma maneira do Python perguntar "O que?" quando não entende alguma coisa.

Elas interrompem o código se não forem tratadas.

Exemplo de um Erro Comum

Digamos que você peça um número ao usuário e tente dividir por ele:

numero = int(input("Digite um número: "))
print(10 / numero)

Se o usuário digitar 0, o Python retorna algo assim:

Exceções em Python zero division

E se digitar "abc" em vez de um número?

Resultado: Seu programa cai, e para de funcionar. Mas podemos evitar isso com tratamento de exceções!

Como Tratar Exceções com try e except

A estrutura básica é:

try:
    codigo_perigoso()
except:
    print("Ops! Algo deu errado")

Exemplo Prático

Vamos usar algo mais prático. Se pedirmos para o usuário colocar um número, e o mesmo colocar uma letra, como poderemos agir para evitar isso? De mesma forma, e se o usuário colocar um zero?

A solução é criar duas excessões. Assim:

try:
    numero = int(input("Digite um número: "))
    print(10 / numero)
except ZeroDivisionError: # se o usúario colocar 0
    print("Erro: Não dá pra dividir por zero!")
except ValueError: # se o usúario não usar números
    print("Erro: Digite um número válido!")

Agora, se o usuário digitar 0 ou "abc", o programa não quebra – ele exibe uma mensagem amigável!

Tratando Múltiplos Erros de Uma Vez

Você pode capturar vários erros em um único except:

try:
    numero = int(input("Digite um número: "))
    print(10 / numero)
except (ZeroDivisionError, ValueError):
    print("Ops! Algo deu errado. Verifique o número digitado.")

else e finally – Complementando o Tratamento

  • else: Executa se nenhum erro ocorrer.
  • finally: Executa sempre, independente de erro.
try:
    numero = int(input("Digite um número: "))
    resultado = 10 / numero
except ZeroDivisionError:
    print("Erro: Divisão por zero!")
except ValueError:
    print("Erro: Número inválido!")
else:
    print(f"Resultado: {resultado}")  # Só roda se não der erro
finally:
    print("Fim do programa!")  # Roda sempre

Erros Comuns e Como Tratá-los

Esses erros mostrados aqui vão sempre com o except.

Dica Extra: Levantando Suas Próprias Exceções (raise)

Às vezes, você quer forçar um erro se algo der errado. Use raise:

idade = int(input("Digite sua idade: "))

if idade < 0:
    raise ValueError("Idade não pode ser negativa!")
else:
    print(f"Sua idade é {idade}")

Conclusão

Agora você sabe como evitar que seus programas quebrem com tratamento de exceções!

Resumo rápido:✔ Use try e except para capturar erros.✔ Trate erros específicos (ZeroDivisionError, ValueError, etc.).✔ Use else para código que só roda se não houver erro.✔ Use finally para ações que devem rodar sempre.

Espero que este post tenha ajudado! Se tiver dúvidas, comente abaixo. 👇