Attraper une exception qui s'imprimerait comme ceci:
Traceback (most recent call last):
File "c:/tmp.py", line 1, in <module>
4 / 0
ZeroDivisionError: integer division or modulo by zero
Je veux le formater en:
ZeroDivisonError, tmp.py, 1
python
exception
stack-trace
traceback
Claudiu
la source
la source
Réponses:
la source
sys.exc_info()
a été introduit pour traiter les problèmes de sécurité des threads dans l'API précédente. Sa sortie est spécifique à la fois au thread actuel et au cadre de pile actuel.Forme la plus simple qui a fonctionné pour moi.
Production
la source
La source (Py v2.7.3) pour traceback.format_exception () et les fonctions appelées / associées aide grandement. Gênant, j'oublie toujours de lire la source . Je ne l'ai fait pour cela qu'après avoir cherché en vain des détails similaires. Une question simple, "Comment recréer la même sortie que Python pour une exception, avec tous les mêmes détails?" Cela permettrait à quiconque de 90% + à tout ce qu'ils recherchent. Frustré, j'ai trouvé cet exemple. J'espère que cela aide les autres. (Cela m'a bien sûr aidé! ;-)
En réponse spécifique à cette requête:
la source
'message' : exc_value.message
à'message' : str(exc_value)
des PY3Voici un exemple montrant le numéro de ligne où l'exception a lieu.
la source