Exceções com Raise em Python

Avatar de Ana Maria Ana Maria
3 minutos de leitura 1 mês atrás

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!

Curso Gratuito

Curso gratuito de Python

Do zero ao primeiro projeto em apenas 2 horas

Criar conta gratuita

Comentários

Comentar
Você tem o Acesso Básico.
Libere seu acesso ao suporte dos professores Garanta seu acesso PRO para tirar todas suas dúvidas com nossa equipe.
Seja PRO