Imprimir una excepción en Python
-
Imprima una excepción usando bloques
try-except-finally
en Python -
Excepción de impresión usando el módulo
traceback
en Python
En Python, una excepción es un error. Hay muchos errores o excepciones en Python, como TypeError
, SyntaxError
, KeyError
, AttributeError
, etc. estas excepciones detendrían la ejecución del programa. Los bloques try-except-finally
en Python se pueden usar para imprimir estas excepciones sin detener la ejecución del programa.
Imprima una excepción usando bloques try-except-finally
en Python
Considere el siguiente fragmento de código.
dictionary = {
"hello": "world",
}
number = 25
try:
number = number + dictionary["hello"]
print(number)
except Exception as e:
print(repr(e))
Producción :
TypeError("unsupported operand type(s) for +: 'int' and 'str'",)
En el código anterior, primero inicializamos un diccionario con hello
como clave que apunta al valor de cadena world
y una variable number
. Luego, dentro del bloque try
, intentamos acceder al valor de la cadena almacenado en el diccionario
y agregarlo a la variable number
.
Esta afirmación es práctica y conceptualmente incorrecta porque es imposible agregar una cadena
a un entero
. Entonces, el bloque except
detecta este error e imprime el objeto Exception
asociado con esta excepción en la consola.
Excepción de impresión usando el módulo traceback
en Python
Python tiene un módulo integrado, traceback
, para imprimir y formatear excepciones. Y facilita la impresión de toda la excepción en la consola.
En Python, puede generar excepciones manualmente utilizando la palabra clave raise
. En el siguiente fragmento de código, usaremos la palabra clave raise
para generar excepciones dentro del bloque try
.
import traceback
try:
raise KeyError
except Exception as e:
traceback.print_exc()
Producción :
Traceback (most recent call last):
File ".\main.py", line 4, in <module>
raise KeyError
KeyError
En el código anterior, generamos una excepción KeyError
y usamos la función print_exc()
del módulo traceback
para imprimir la excepción. Esta función imprime la información sobre la excepción y es una abreviatura de traceback.print_exception(*sys.exc_info(), limit, file, chain)
.
Para obtener más información sobre la función print_exception()
, consulte los documentos oficiales aquí