6
Gdy złapię nieoczekiwany błąd z sys.excepthookPython złapać żadnego wyjątku i drukowanie lub zalogować traceback z wartościami zmiennych
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
To wyjście otrzymuję
error
Traceback (most recent call last):
File "test.py", line 13, in <module>
print h/k
ZeroDivisionError: integer division or modulo by zero
Jak mogę zawierać wartości zmiennych (h, k, ...) w trybie traceback w stosunku do http://www.doughellmann.com/PyMOTW/cgitb/? Kiedy dodaję wynik cgitb jest taki sam.
EDIT:
Świetna odpowiedź I tylko zmodyfikowany to tak więc rejestruje ślad w pliku
def handleException(excType, excValue, trace):
cgitb.Hook(logdir=os.path.dirname(__file__),
display=False,
format='text')(excType, excValue, trace)