我正在尝试覆盖sys.excepthook
异常处理。但是,它根本行不通。
这是我正在运行的代码。
from sys import excepthook
excepthook = lambda type, exception, traceback : print('foo')
raise Exception('bar')
以下代码调用我的替代方法:
from sys import excepthook
excepthook = lambda type, exception, traceback : print('foo')
try:
raise Exception('bar')
except Exception as e:
excepthook(Exception, e, e._traceback_)
由于sys.excepthook
应该捕获未处理的异常,因此该代码无用。
我知道很多人遇到诸如我的问题,但是这些问题都没有一个能帮助我解决问题。
why-doesnt-sys-excepthook-work
adding-function-to-sys-excepthook
sys-excepthook-vs-handled-exceptions
谢谢。
答案 0 :(得分:0)
知道了。
问题在于导入sys
模块。
import sys
sys.excepthook = lambda type, exception, traceback : print('foo')
不是这个:
from sys import excepthook
似乎python不了解excepthook
中的sys
函数,因此它声明了一个名为excepthook
的新变量。这就是为什么它不能按文档中所述的那样工作。