无法覆盖'sys.excepthook'

时间:2019-06-03 18:59:21

标签: python exception

我正在尝试覆盖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

谢谢。

1 个答案:

答案 0 :(得分:0)

知道了。

问题在于导入sys模块。

import sys

sys.excepthook = lambda type, exception, traceback : print('foo')

不是这个:

from sys import excepthook

似乎python不了解excepthook中的sys函数,因此它声明了一个名为excepthook的新变量。这就是为什么它不能按文档中所述的那样工作。