Wenn ich einen unerwarteten Fehler mit sys.excepthook abfange
import sys
import traceback
def handleException(excType, excValue, trace):
print 'error'
traceback.print_exception(excType, excValue, trace)
sys.excepthook = handleException
h = 1
k = 0
print h/k
Diese Ausgabe erhalte ich
error
Traceback (most recent call last):
File "test.py", line 13, in <module>
print h/k
ZeroDivisionError: integer division or modulo by zero
Wie kann ich Variablenwerte (h, k, ...) in den Traceback aufnehmen, ähnlich wie bei http://www.doughellmann.com/PyMOTW/cgitb/ ? Wenn ich cgitb einfüge, ist das Ergebnis dasselbe.
EDIT :
Tolle Antwort Ich habe es nur so geändert, dass es die Aufzeichnung in einer Datei protokolliert
def handleException(excType, excValue, trace):
cgitb.Hook(logdir=os.path.dirname(__file__),
display=False,
format='text')(excType, excValue, trace)