Comme Ned l'a souligné, sys.excepthook
est invoqué à chaque fois qu'une exception est levée et non interceptée. L'implication pratique de cette est que dans votre code, vous pouvez remplacer le comportement par défaut de sys.excepthook
à faire ce que vous voulez (y compris à l'aide de logging.exception
).
Comme un homme de paille exemple:
>>> import sys
>>> def foo(exctype, value, tb):
... print 'My Error Information'
... print 'Type:', exctype
... print 'Value:', value
... print 'Traceback:', tb
...
Remplacer sys.excepthook
:
>>> sys.excepthook = foo
S'engager évidente erreur de syntaxe (congé du côlon) et de revenir personnalisée informations d'erreur:
>>> def bar(a, b)
My Error Information
Type: <type 'exceptions.SyntaxError'>
Value: invalid syntax (<stdin>, line 1)
Traceback: None
Pour plus d'informations sur l' sys.excepthook
: http://docs.python.org/library/sys.html#sys.excepthook