Sobes.tech
Junior

Como re-levantar uma exceção no bloco except?

sobes.tech IA

Resposta da IA

Para relançar uma exceção tratada num bloco except, basta usar a palavra-chave raise sem argumentos. Isto permitirá que a exceção se propague para cima na pilha de chamadas após a execução do código no bloco except.

try:
    # Código que pode gerar uma exceção
    result = 1 / 0
except ZeroDivisionError as e:
    # Tratamento da exceção (por exemplo, registo)
    print(f"Erro de divisão por zero: {e}")
    # Re-lançar a exceção
    raise

Se for necessário lançar outra exceção ou adicionar informação à atual, pode usar raise exceção from a_exceção_atual.

try:
    # Código que pode gerar uma exceção
    data = {}
    value = data['key']
except KeyError as e:
    # Exceção KeyError capturada
    print(f"Erro de acesso por chave: {e}")
    # Lançar uma nova exceção, ligando-a à original
    raise ValueError("Formato de dados incorreto") from e