← Volver

Cómo almacenar una excepción en una variable o archivo

El módulo estándar traceback permite obtener información sobre la última excepción ocurrida en un programa. Consideremos, por ejemplo, el siguiente error.

>>> int("Hola mundo!")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'Hola mundo!'

Para guardar el mensaje de error completo en una variable debemos primero capturarla vía una cláusula try/except y luego emplear la función format_exc().

from traceback import format_exc

try:
int("Hola mundo!")
except ValueError:
exc = format_exc()
print(exc)

En este caso, al producirse la excepción, el mensaje de error se almacena como una cadena en exc.

Por otro lado, para enviar el contenido de la excepción a un archivo se utiliza print_exc().

from traceback import print_exc

try:
int("Hola mundo!")
except ValueError:
with open("error.log", "w") as f:
print_exc(file=f)



¿Alguna duda sobre este código? ¡Preguntanos en el foro!