Python:
Tratamento de erros

Como fazer:

# Bloco básico de try-except
try:
    # código arriscado
    numero = int(input("Digite um número: "))
except ValueError:
    # trata o erro
    print("Isso não é um número!")

# Especificando múltiplas exceções
try:
    # código que pode gerar diferentes exceções
    resultado = 10 / int(input("Digite um divisor: "))
except ZeroDivisionError:
    print("Ops! Não é possível dividir por zero.")
except ValueError:
    print("Eu preciso de um número, amigo.")

# Usando else e finally
try:
    numero = int(input("Digite um número para elevar ao quadrado: "))
except ValueError:
    print("Eu disse um número!")
else:
    # nenhum erro ocorreu
    print("O quadrado do seu número é:", numero**2)
finally:
    # sempre executa
    print("Obrigado por testar isso!")

Exemplo de saída ao digitar um número inválido para o primeiro bloco:

Digite um número: olá
Isso não é um número!

Mergulho Profundo

Desde o início da programação, o tratamento de erros tem sido crucial. Abordagens iniciais eram rudimentares, como verificar condições antes de cada operação arriscada. A sintaxe de try-except do Python veio de um legado de tratamento de exceções em linguagens mais antigas como C++ e Java, simplificando o processo.

Quando você usa try em um bloco de código, o Python fica de olho em qualquer exceção. Se um erro aparece, o bloco except captura. Você pode ser específico quanto às exceções que captura ou pegar todas com um except vazio. No entanto, ser específico primeiro é a melhor abordagem – é preciso, e não uma rede de captura geral.

else e finally são extras neste conceito. O bloco else é executado se o bloco try estiver livre de erros. finally é o amigo confiável que executa não importa o quê – pense em operações de limpeza.

Alternativas? Certamente existem. Algumas linguagens usam códigos de retorno em vez de exceções. Você também pode encontrar instruções with para gerenciamento de recursos ou assertions que verificam condições durante o desenvolvimento. Mas quando falamos sobre estratégias sólidas de tratamento de erros, o modelo try-catch se destaca por sua legibilidade e estrutura.

Veja Também

Aqui estão alguns bons recursos adicionais para se aprofundar ainda mais: