正如Ned所指出的,
sys.excepthook每次引发并捕获异常时都会调用它。实际的含义是,在您的代码中,您可以覆盖
sys.excepthook做任何您想做的事情(包括使用
logging.exception)的默认行为。
作为一个稻草人的例子:
>>> import sys>>> def foo(exctype, value, tb):... print 'My Error Information'... print 'Type:', exctype... print 'Value:', value... print 'Traceback:', tb...
覆写
sys.excepthook:
>>> sys.excepthook = foo
提交明显的语法错误(省略冒号)并获取自定义错误信息:
>>> def bar(a, b)My Error InformationType: <type 'exceptions.SyntaxError'>Value: invalid syntax (<stdin>, line 1)Traceback: None
有关更多信息
sys.excepthook,请阅读文档。



