Imprimir uma exceção em Python

Vaibhav Vaibhav 30 janeiro 2023
  1. Imprimir uma exceção usando blocos try-except-finally em Python
  2. Exceção de impressão usando o módulo traceback em Python
Imprimir uma exceção em Python

Em Python, uma exceção é um erro. Existem muitos erros ou exceções em Python, como TypeError, SyntaxError, KeyError, AttributeError, etc. Usamos try-except-finally em Python para lidar com essas exceções porque, sem esses blocos, essas exceções interromperiam a execução do programa. Os blocos try-except-finally em Python podem ser usados ​​para imprimir essas exceções sem interromper a execução do programa.

Imprimir uma exceção usando blocos try-except-finally em Python

Considere o seguinte trecho de código.

dictionary = {
    "hello": "world",
}
number = 25

try:
    number = number + dictionary["hello"]
    print(number)
except Exception as e:
    print(repr(e))

Resultado:

TypeError("unsupported operand type(s) for +: 'int' and 'str'",)

No código acima, primeiro inicializamos um dicionário com hello como uma chave apontando para o valor da string world e uma variável number. Então, dentro do bloco try, estamos tentando acessar o valor da string armazenado no dictionary e adicionando-o à variável number.

Esta afirmação é prática e conceitualmente errada porque é impossível adicionar uma string a um inteiro. Portanto, o bloco except captura este erro e imprime o objeto Exception associado a esta exceção no console.

Exceção de impressão usando o módulo traceback em Python

Python tem um módulo embutido, traceback, para imprimir e formatar exceções. E torna mais fácil imprimir toda a exceção no console.

Em Python, você pode levantar exceções manualmente usando a palavra-chave raise. No trecho de código a seguir, usaremos a palavra-chave raise para levantar exceções dentro do bloco try.

import traceback

try:
    raise KeyError
except Exception as e:
    traceback.print_exc()

Resultado:

Traceback (most recent call last):
  File ".\main.py", line 4, in <module>
    raise KeyError
KeyError

No código acima, levantamos uma exceção KeyError e usamos a função print_exc() do módulo traceback para imprimir a exceção. Esta função imprime as informações sobre a exceção e é uma abreviação para traceback.print_exception(*sys.exc_info(), limit, file, chain).

Para saber mais sobre a função print_exception(), consulte os documentos oficiais aqui

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artigo relacionado - Python Exception