我正在尝试记录导致我的进程关闭的错误,但是 traceback.print_tb
和 traceback.print_exc
似乎没有意识到引发的错误是。
换句话说,为什么下面打印的是“None\n”而不是“DivisionByZero .. etc ..”? (编辑:..以及如何从 exit_fn 中访问引发/处理的错误?)
import traceback, atexit
def exit_fn():
print 'exiting'
if traceback.format_exc().startswith('None'):
print 'why is this None?'
atexit.register(exit_fn)
x = 1/0
最佳答案
我相信,当你的例程被调用时,异常已经被“处理”(至少当我运行你的代码时,即使我删除你的打印调用我也会看到回溯),所以那时没有要格式化的。
关于python - 在注册的 atexit 函数中获取错误回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025518/