Exceções com Raise em Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

As exceções são uma parte fundamental da programação em Python, permitindo que você lide com erros de forma controlada e eficiente. Neste tutorial, vamos explorar como criar e utilizar exceções personalizadas com a instrução raise em Python. Este conteúdo é voltado para programadores intermediários que já possuem familiaridade com a sintaxe básica da linguagem.

Introdução às Exceções com Raise em Python

Em Python, a instrução raise permite que você lance uma exceção manualmente em seu código. Isso é útil quando você deseja interromper a execução do programa e sinalizar que algo deu errado, fornecendo uma mensagem de erro específica. Vamos ver como isso funciona na prática.

Estrutura Básica do Try-Except

Antes de mergulharmos no raise, é importante relembrar a estrutura básica do bloco try-except, que é usado para capturar e tratar exceções.

try:
    # Código que pode causar um erro
    x = int(input("Digite um número: "))
except ValueError:
    # Código que executa se ocorrer um erro
    print("Valor inválido! Por favor, digite um número.")
Testar

Neste exemplo, se o usuário digitar algo que não pode ser convertido para um inteiro, o bloco except será executado, exibindo uma mensagem de erro.

Utilizando Raise para Lançar Exceções

A instrução raise é usada para lançar uma exceção manualmente. Isso pode ser útil em várias situações, como validação de dados ou controle de fluxo. Veja um exemplo simples:

def calcular_raiz_quadrada(numero):
    if numero < 0:
        raise ValueError("Impossível calcular a raiz quadrada de um número negativo!")
    return numero ** 0.5

try:
    resultado = calcular_raiz_quadrada(-10)
except ValueError as e:
    print(e)
Testar

Neste exemplo, a função calcular_raiz_quadrada lança uma exceção ValueError se o número fornecido for negativo. O bloco try-except captura essa exceção e exibe a mensagem de erro.

Criando Exceções Personalizadas

Além de usar exceções embutidas, você pode criar suas próprias exceções personalizadas. Isso é feito criando uma nova classe que herda de Exception.

class ErroPersonalizado(Exception):
    pass

def verificar_valor(valor):
    if valor > 100:
        raise ErroPersonalizado("O valor não pode ser maior que 100!")

try:
    verificar_valor(150)
except ErroPersonalizado as e:
    print(e)
Testar

Aqui, criamos uma exceção personalizada chamada ErroPersonalizado e a utilizamos na função verificar_valor. Se o valor for maior que 100, a exceção é lançada e capturada no bloco try-except.

Usando Raise com Exceções Encadeadas

Em alguns casos, pode ser útil capturar uma exceção e lançar outra, mantendo a exceção original como contexto. Isso é feito com a sintaxe raise ... from.

try:
    x = int("não é um número")
except ValueError as e:
    raise RuntimeError("Erro ao converter string para inteiro") from e

Neste exemplo, capturamos uma ValueError e lançamos uma RuntimeError, mantendo a ValueError original como contexto.

Conclusão

As exceções com raise em Python são uma ferramenta poderosa para controle de fluxo e tratamento de erros. Elas permitem que você crie mensagens de erro específicas e mantenha seu código limpo e robusto. Lembre-se de usar exceções personalizadas quando necessário e de capturar exceções de forma adequada para evitar que erros passem despercebidos.

Esperamos que este tutorial tenha ajudado a entender melhor como utilizar exceções com raise em Python. Continue praticando e explorando as possibilidades que essa funcionalidade oferece!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: