Tutoriais

Exceções com Raise em Python

Ana Maria Gomes 29 maio Intermediário 5xp
Compartilhar

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!

Cursos gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

0 comentários

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov