Capturando una excepción que se imprimiría así:
Traceback (most recent call last):
File "c:/tmp.py", line 1, in <module>
4 / 0
ZeroDivisionError: integer division or modulo by zero
Quiero formatearlo en:
ZeroDivisonError, tmp.py, 1
python
exception
stack-trace
traceback
Claudiu
fuente
fuente
Respuestas:
fuente
sys.exc_info()
se introdujo para tratar problemas de seguridad de subprocesos en la API anterior. Su salida es específica tanto para el subproceso actual como para el marco de pila actual.La forma más simple que funcionó para mí.
Salida
fuente
Source (Py v2.7.3) para traceback.format_exception () y llamadas / funciones relacionadas ayuda mucho. Vergonzosamente, siempre me olvido de leer la fuente . Solo lo hice para esto después de buscar detalles similares en vano. Una pregunta simple, "¿Cómo recrear la misma salida que Python para una excepción, con todos los mismos detalles?" Esto llevaría a cualquiera más del 90% a lo que sea que estén buscando. Frustrado, se me ocurrió este ejemplo. Espero que ayude a los demás. (¡Seguro que me ayudó! ;-)
En respuesta específica a esta consulta:
fuente
'message' : exc_value.message
a'message' : str(exc_value)
para py3Aquí hay un ejemplo de mostrar el número de línea de dónde tiene lugar la excepción.
fuente