Exceções
As exceções em Python são eventos que ocorrem durante a execução de um programa que interrompem o fluxo normal das instruções. Elas são usadas para lidar com erros e situações inesperadas de forma elegante e controlada. Neste tutorial, vamos explorar o conceito de exceções em Python, como elas funcionam, como usá-las e como criar suas próprias exceções personalizadas.
1. Tipos de Exceções Embutidas:
Python possui uma variedade de exceções embutidas que são lançadas em diferentes situações. Alguns exemplos comuns incluem:
SyntaxError
: Ocorre quando há um erro de sintaxe no código.NameError
: Ocorre quando uma variável não é encontrada.TypeError
: Ocorre quando uma operação é aplicada a um objeto do tipo errado.ValueError
: Ocorre quando uma função recebe um argumento do tipo certo, mas com um valor inválido.
2. Bloco try-except
:
Para lidar com exceções em Python, você pode usar o bloco try-except
. O código que pode gerar uma exceção é colocado dentro do bloco try
. Se uma exceção for lançada, o bloco except
correspondente será executado.
try:
resultado = 10 / 0 # Tentativa de divisão por zero
except ZeroDivisionError:
print("Erro: Divisão por zero não é permitida.")
3. Bloco finally
:
Você pode usar o bloco finally
para especificar um bloco de código que será sempre executado, independentemente de uma exceção ser lançada ou não.
try:
arquivo = open("arquivo.txt", "r")
conteudo = arquivo.read()
except FileNotFoundError:
print("Erro: Arquivo não encontrado.")
finally:
arquivo.close()
4. Bloco else
:
O bloco else
pode ser usado em conjunto com try-except
para especificar um bloco de código que será executado se nenhuma exceção for lançada.
try:
numero = int(input("Digite um número: "))
except ValueError:
print("Erro: Entrada inválida. Por favor, digite um número.")
else:
print(f"Você digitou: {numero}")
5. Criando Exceções Personalizadas:
Você também pode criar suas próprias exceções personalizadas, estendendo a classe Exception
.
class ValorNegativoError(Exception):
def __init__(self, mensagem="O valor não pode ser negativo."):
self.mensagem = mensagem
super().__init__(self.mensagem)
numero = -5
try:
if numero < 0:
raise ValorNegativoError
except ValorNegativoError as e:
print(e) # Saída: O valor não pode ser negativo.
O gerenciamento de exceções em Python é uma técnica poderosa para lidar com situações de erro e garantir que seu programa possa lidar com problemas de forma controlada. Ao utilizar os blocos try
, except
, finally
e else
, bem como criar suas próprias exceções personalizadas quando necessário, você pode escrever código robusto e resistente a falhas.