Tentativa/Exceção em Python e tratamento de erros
Evite que seus scripts Python travem. Aprenda os blocos try, exceto, finalmente e como gerar exceções personalizadas corretamente.
Visão geral
No mundo real da programação, os erros são completamente inevitáveis. Os arquivos podem ser excluídos, as conexões de rede podem cair ou um usuário pode inserir uma letra quando o seu script esperava um número. Se esses cenários ocorrerem sem salvaguardas, o Python interrompe a execução e lança uma exceção (um erro de tempo de execução), travando todo o programa. O tratamento de erros é a arte de antecipar e gerenciar essas falhas com elegância.
A base do gerenciamento de erros em Python é a estrutura de blocos `try` e `except`. Você coloca o código potencialmente perigoso dentro do bloco `try`. Python tentará executá-lo. Se ocorrer um erro, em vez de travar, o Python intercepta a exceção e imediatamente desce para executar o código contido no bloco `except`. Isso permite que o programa se recupere, exiba uma mensagem de erro amigável e continue em execução.
É uma prática recomendada crítica capturar exceções específicas e direcionadas, em vez de escrever um bloco `except:` geral. Por exemplo, capturar `FileNotFoundError` ou `ValueError` garante explicitamente que você está lidando com o problema exato que antecipou, em vez de mascarar acidentalmente bugs não relacionados (como um erro de sintaxe) que você realmente precisa conhecer.
Python também fornece um bloco `else` opcional, que é executado somente se o bloco `try` for concluído com êxito, sem gerar erros. Este é o lugar perfeito para colocar a lógica que depende absolutamente do sucesso da operação perigosa. Além disso, o bloco `finally` fornece uma maneira de executar código, não importa o que aconteça – tenha ocorrido um erro ou não. O bloco `finally` é vital para ações de limpeza, como fechar conexões de banco de dados ou liberar bloqueios de arquivos.
Além de detectar erros, o Python permite que os desenvolvedores os acionem explicitamente usando a palavra-chave `raise`. Gerar uma exceção permite impor restrições estritas em sua lógica, rejeitando dados inválidos antes que eles corrompam o estado do seu aplicativo. Ao definir classes de exceção personalizadas que herdam da classe base `Exception` do Python, os desenvolvedores podem criar hierarquias de erros altamente específicas de domínio para aplicativos corporativos massivos.
Saída de código e execução
Criação de segurança estrutural ao interagir com estruturas de arquivos potencialmente perigosas ou inexistentes.
def divide_numbers(a, b):
try:
result = a / b
except ZeroDivisionError:
return "Error: Cannot divide by zero!"
except TypeError:
return "Error: Both arguments must be numbers."
else:
return f"The result is {result}"
finally:
print("Execution completed.")
print(divide_numbers(10, 2))
print(divide_numbers(10, 0))Execution completed.
The result is 5.0
Execution completed.
Error: Cannot divide by zero!Implementação passo a passo
- Validando envios de formulários de usuários
- Garantir que as solicitações de rede não travem no tempo limite
- Fechando conexões de banco de dados com segurança em um bloco final
Perguntas frequentes
Qual é a palavra-chave "aumentar"?
A palavra-chave raise é usada para gerar uma exceção propositalmente. Você pode definir que tipo de erro gerar e o texto a ser impresso para o usuário.
Tópicos Relacionados
Domine as funções do Python. Aprenda como escrever código reutilizável usando def, definir argumentos, retornar valores e compreender o escopo local e globalmente.
Classes Python e programação orientada a objetosUma introdução completa às classes, objetos, herança e conceitos OOP do Python. Crie modelos de dados robustos e dimensione seus aplicativos Python.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Como classificar uma lista em Python
Aprenda como classificar uma lista em Python usando o método sort() e a função sorted(). Descubra exemplos de classificação de chaves personalizadas e ordem reversa.
Folha de referências de tipos de erros e exceções integradas do Python
Guia de referência para tipos de erros comuns do Python. Aprenda como depurar ValueError, TypeError, IndexError, KeyError e gerar exceções.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.