Try except em Python
Erros em códigos são comuns. Saber lidar de forma inteligente com eles faz parte do dia a dia de quem programa. Python possui várias estratégias para lidar com erros. Certamente, os comandos try except estão entre os mais robustos e interessantes. Os blocos try except são essenciais para o tratamento de erros em Python. Eles são instruções usadas para manipular exceções que podem ocorrer durante a execução de um programa e evitar que ele trave.
Como usar try except
O bloco try é usado para incluir o código que você deseja executar, mas que pode gerar uma exceção (erro). Ele deve ser usado quando existe a suspeita de que aquele trecho do código possa causar um erro e travar o programa. Suponha, por exemplo, um código que acessa uma API. Ela pode não estar sempre disponível ou pode não retornar a solicitação correta. Para evitar que seu aplicativo trave, o comando try pode testar a ação desejada. Se ocorrer uma exceção no bloco try, o programa pulará para o bloco except. Este bloco manipula a exceção que ocorre durante a execução do bloco try. A sintaxe geral é:
try:
# código que pode conter um erro (exceção)
except ExceptionType: # pode especificar o tipo de erro (opcional)
# código para lidar com o erro se ele for encontrado
Exemplos Práticos
Você pode especificar o tipo de erro que deseja capturar com o bloco except. Se o tipo de exceção corresponder ao que ocorre no bloco try, o código no bloco except será executado.
# exemplo - divisão por zero
a = 100
b = 0
try:
result = a / b # causa erro de divisão por zero
except ZeroDivisionError: # lida apenas com erro de divisão por zero
print("Epa! Encontrei um erro de divisão por zero!")
Outra possibilidade é usar o bloco except sem especificar um erro. Nesse caso, ele será executado se o bloco try encontrar um erro independente de sua natureza.
a = 100
b = 0
try:
result = a / b # causa erro de divisão por zero
except:
print("Epa! Encontrei um erro!") # lida com erro mesmo sem saber seu tipo
O bloco try pode ser combinado com vários blocos except que testam diferentes erros.
x = 'a'
try:
y = 10 / x
print(y)
except ZeroDivisionError: # lida com erro de divisão por zero
print("Epa! Encontrei um erro de divisão por zero!")
except TypeError: # lida com erro de tipo, por exemplo uma string como input
print("Epa! Encontrei um erro de tipo!")
Try, except e else
Os blocos try except também podem ser combinados com else. O bloco else é executado apenas quando tudo corre bem. Ou seja, nenhuma exceção é encontrada.
x = 1
try:
y = 10 / x
print(y)
except ZeroDivisionError: # lida com erro de divisão por zero
print("Epa! Encontrei um erro de divisão por zero!")
except TypeError: # lida com erro de tipo, por exemplo uma string como input
print("Epa! Encontrei um erro de tipo!")
else: # executado quando o programa roda sem erros
print("Tudo certo!")
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.