- 1 1. Visão Geral do Tratamento de Exceções em Python
- 2 2. O que é a Declaração try-except?
- 3 3. Exceções Comuns e Como Tratá-las
- 4 4. Recuperando Detalhes de Erros Usando Objetos de Exceção
- 5 5. Usando o Bloco finally
- 6 6. Levantando Exceções com raise
- 7 7. Melhores Práticas para Tratamento de Exceções em Python
1. Visão Geral do Tratamento de Exceções em Python
O que é Tratamento de Exceções em Python?
Durante a execução do programa, erros inesperados podem ocorrer. Esses são chamados de “exceções” e, quando acontecem, o programa geralmente para de executar. O Python fornece tratamento de exceções para gerenciar esses erros. Ao usar o tratamento de exceções, você pode responder aos erros de forma apropriada e garantir que o programa continue executando suavemente.
Por que o Tratamento de Exceções é Importante?
O tratamento de exceções é crucial para manter o programa executando suavemente para os usuários, mesmo quando erros ocorrem. Ele também ajuda a identificar a causa dos erros e facilita a depuração, resultando em programas mais confiáveis.
2. O que é a Declaração try-except?
Sintaxe Básica
Em Python, a declaração try-except é usada para lidar com erros potenciais. O código que pode causar um erro é escrito dentro do bloco try, enquanto o bloco except contém o mecanismo de tratamento caso um erro ocorra. Aqui está a sintaxe básica:
try:
# Code that may cause an error
except SomeError:
# Code to handle the error
Se o código dentro do bloco try executar sem erros, o bloco except é ignorado. No entanto, se um erro ocorrer, o programa executa o código de tratamento apropriado no bloco except.
Exemplo Comum: Erro de Divisão por Zero
Tentar dividir por zero resulta em um ZeroDivisionError. Esse erro pode ser tratado da seguinte forma:
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero")

3. Exceções Comuns e Como Tratá-las
1. ZeroDivisionError
Essa exceção ocorre quando se tenta dividir por zero. Por exemplo, tentar dividir um número por 0 levantará automaticamente um ZeroDivisionError no Python.
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero")
2. ValueError
Um ValueError ocorre quando um valor inválido é passado para uma função ou operação. No exemplo a seguir, tentamos converter uma string que não é um número válido em um inteiro.
try:
num = int("not_a_number")
except ValueError:
print("Invalid value")
3. Tratamento de Múltiplas Exceções
Se você quiser tratar múltiplas exceções de uma vez, pode usar a declaração except com múltiplas exceções agrupadas juntas:
try:
result = 10 / "string"
except (ZeroDivisionError, TypeError):
print("An error occurred")
4. Recuperando Detalhes de Erros Usando Objetos de Exceção
Usando as para Capturar Objetos de Exceção
Com a declaração except, você pode usar a palavra-chave as para capturar o objeto de exceção. Isso permite referenciar detalhes do erro ou registrá-los para análise posterior.
try:
a = 10 / 0
except ZeroDivisionError as e:
print(f"An error occurred: {e}")
Nesse código, quando um ZeroDivisionError ocorre, a mensagem de erro é armazenada na variável e e exibida na saída.
5. Usando o Bloco finally
O que é finally?
O bloco finally é usado para executar código independentemente de uma exceção ocorrer ou não. Ele é especialmente útil para tarefas como fechar arquivos ou limpar conexões de banco de dados, garantindo que as operações necessárias sejam sempre realizadas.
try:
file = open("test.txt", "r")
except FileNotFoundError:
print("File not found")
finally:
print("File operation completed")
Limpando Recursos
O bloco finally é útil para liberar recursos no final de um programa. Por exemplo, você pode usar finally para garantir que um arquivo seja sempre fechado.
try:
file = open("data.txt", "r")
# Perform file operations
finally:
file.close()
Ao usar o bloco finally, você pode garantir que o arquivo seja fechado corretamente, mesmo se um erro ocorrer.
6. Levantando Exceções com raise
O Papel de raise
A instrução raise permite que os desenvolvedores acionem exceções manualmente. Isso é útil para validar entradas ou impor condições, lançando explicitamente um erro.
def check_value(value):
if value < 0:
raise ValueError("Negative values are not allowed")
Exemplo de uma Exceção Personalizada
Ao lançar erros para condições específicas, você pode impedir entradas inválidas e comportamentos inesperados.

7. Melhores Práticas para Tratamento de Exceções em Python
1. Evite o Tratamento Excessivo de Exceções
O uso excessivo de tratamento de exceções pode tornar o código mais difícil de ler e depurar. Exceções devem ser usadas apenas nas partes do código onde erros são prováveis, em vez de serem integradas ao fluxo normal do programa.
2. Use o Logging para Registrar Erros
Quando uma exceção ocorre, é importante registrar a mensagem de erro. Isso ajuda a rastrear a causa do erro posteriormente. O exemplo a seguir mostra como usar o módulo logging:
import logging
try:
a = 10 / 0
except ZeroDivisionError as e:
logging.error(f"An error occurred: {e}")
3. Evite Usar Declarações except Amplas
Recomenda-se capturar erros específicos em vez de usar uma declaração ampla except Exception. Capturar muitos erros de uma vez pode dificultar a identificação do problema exato, portanto, tratar exceções específicas separadamente é uma abordagem melhor.



![[Guia Completo da Função type() do Python] Do Básico ao Uso Avançado](https://www.python.digibeatrix.com/wp-content/uploads/2024/09/fa2ef99250fadd724e5006624756bd6a-375x375.webp)