我经历了“在 Python 中记录未捕获的异常”。而且,我试过这个:
import web
import sys
app = web.application((
'/test', 'test'), globals())
def test_func(e_type, value, traceback):
print "Handled exception here.."
class test:
def GET(self):
a = 1/0
if __name__ == "__main__":
sys.excepthook = test_func
app.run()
在这里,你可以很容易地看到GET /test
请求是否进来,我是故意提高ZerDivisionError
的。正如我已经覆盖sys.excepthook
,我希望方法test_func
执行ZeroDivisionError
。
然而,这段代码没有按预期工作。我观察到,当我尝试excepthook
在独立代码(而不是网络应用程序)中覆盖时,它工作正常。新方法(覆盖)被正确调用。
知道为什么会有这种不同的行为吗?