Eine Ausnahme abfangen, die wie folgt gedruckt wird:
Traceback (most recent call last):
File "c:/tmp.py", line 1, in <module>
4 / 0
ZeroDivisionError: integer division or modulo by zero
Ich möchte es formatieren in:
ZeroDivisonError, tmp.py, 1
python
exception
stack-trace
traceback
Claudiu
quelle
quelle
Antworten:
quelle
sys.exc_info()
wurde eingeführt, um Thread-Sicherheitsprobleme in der vorherigen API zu beheben. Die Ausgabe ist sowohl für den aktuellen Thread als auch für den aktuellen Stapelrahmen spezifisch.Einfachste Form, die für mich funktioniert hat.
Ausgabe
quelle
Die Quelle (Py v2.7.3) für traceback.format_exception () und aufgerufene / verwandte Funktionen hilft sehr. Peinlicherweise vergesse ich immer, die Quelle zu lesen . Ich habe dies nur getan, nachdem ich vergeblich nach ähnlichen Details gesucht hatte. Eine einfache Frage: "Wie kann ich für eine Ausnahme dieselbe Ausgabe wie Python mit denselben Details neu erstellen?" Dies würde jedem 90 +% zu dem bringen, wonach er sucht. Frustriert kam ich auf dieses Beispiel. Ich hoffe es hilft anderen. (Es hat mir sicher geholfen! ;-)
In konkreter Antwort auf diese Frage:
quelle
'message' : exc_value.message
für'message' : str(exc_value)
für py3Hier ist ein Beispiel für die Anzeige der Zeilennummer, in der eine Ausnahme auftritt.
quelle