Python Tente Exceto
O try
bloco permite testar um bloco de código quanto a erros.
O except
bloco permite que você lide com o erro.
O else
bloco permite executar código quando não há erro.
O finally
bloco permite que você execute código, independentemente do resultado dos blocos try e except.
Manipulação de exceção
Quando ocorre um erro, ou exceção, como chamamos, o Python normalmente para e gera uma mensagem de erro.
Essas exceções podem ser tratadas usando a try
instrução:
Exemplo
O try
bloco irá gerar uma exceção, pois x
não está definido:
try:
print(x)
except:
print("An exception occurred")
Como o bloco try gera um erro, o bloco except será executado.
Sem o bloco try, o programa irá travar e gerar um erro:
Exemplo
Esta declaração irá gerar um erro, porque x
não está definido:
print(x)
Muitas exceções
Você pode definir quantos blocos de exceção desejar, por exemplo, se você deseja executar um bloco de código especial para um tipo especial de erro:
Exemplo
Imprima uma mensagem se o bloco try gerar a NameError
e outra para outros erros:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
Senão
Você pode usar a else
palavra-chave para definir um bloco de código a ser executado se nenhum erro for gerado:
Exemplo
Neste exemplo, o try
bloco não gera nenhum erro:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Finalmente
O finally
bloco, se especificado, será executado independentemente de o bloco try gerar um erro ou não.
Exemplo
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Isso pode ser útil para fechar objetos e limpar recursos:
Exemplo
Tente abrir e gravar em um arquivo que não seja gravável:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
O programa pode continuar, sem deixar o objeto de arquivo aberto.
Criar uma exceção
Como desenvolvedor Python, você pode optar por lançar uma exceção se ocorrer uma condição.
Para lançar (ou levantar) uma exceção, use a palavra- raise
chave.
Exemplo
Gere um erro e pare o programa se x for menor que 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
A raise
palavra-chave é usada para gerar uma exceção.
Você pode definir que tipo de erro gerar e o texto a ser impresso para o usuário.
Exemplo
Gere um TypeError se x não for um inteiro:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")