Capítulo 8: Conteúdo Extra#
Tratamento de erros (try/except
)#
Em Python, usamos o bloco try/except
para lidar com erros que podem ocorrer durante a execução do programa, evitando que ele seja interrompido inesperadamente.
Exemplo básico com try/except
:
try:
numero = int(input("Digite um número: "))
resultado = 10 / numero
print(f"O resultado é {resultado}.")
except ZeroDivisionError:
print("Erro: divisão por zero.")
except ValueError:
print("Erro: entrada inválida.")
Saída:
Digite um número: 2
O resultado é 5.0.
Digite um número: 0
Erro: divisão por zero.
Digite um número: abc
Erro: entrada inválida.
Blocos else
e finally
no tratamento de erros#
Além do try
e except
, Python permite o uso opcional dos blocos else
e finally
para tornar o tratamento de erros mais completo.
else
Executado somente se nenhum erro ocorrer no bloco try
.
finally
Executado sempre, com ou sem erro. É útil para liberar recursos, como fechar arquivos ou conexões com banco de dados.
Exemplo com else
e finally
:
try:
numero = int(input("Digite um número: "))
resultado = 10 / numero
except ZeroDivisionError:
print("Erro: divisão por zero.")
except ValueError:
print("Erro: entrada inválida.")
else:
print(f"O resultado é {resultado}.")
finally:
print("Execução finalizada.")
Saída:
Digite um número: 2
O resultado é 5.0.
Execução finalizada.
Digite um número: 0
Erro: divisão por zero.
Execução finalizada.
Digite um número: xyz
Erro: entrada inválida.
Execução finalizada.
Usando try/except
em funções#
É comum usar try/except
dentro de funções para torná-las mais seguras e reutilizáveis.
def dividir(a, b):
try:
return a / b
except ZeroDivisionError:
return "Erro: divisão por zero."
print(dividir(10, 2)) # Saída: 5.0
print(dividir(10, 0)) # Saída: Erro: divisão por zero.
Saída:
5.0
Erro: divisão por zero.
Tabela com Resumo#
Bloco |
Quando é executado |
---|---|
|
Tenta executar um código que pode dar erro |
|
Executa se um erro ocorrer no |
|
Executa se nenhum erro ocorrer no |
|
Sempre executa, com ou sem erro |