python - 在注册的 atexit 函数中获取错误回溯

标签 python traceback atexit

我正在尝试记录导致我的进程关闭的错误,但是 traceback.print_tbtraceback.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/

相关文章:

python - SQL ALCHEMY 关系问题 (M :1)

根据程序状态更改退出行为

c++ - 从析构函数调用函数或将其提供给 atexit() 之间的区别

c - atexit 被认为是有害的?

python - Tkinter 滚动条

python - 如何为具有多个数字列的给定 pandas 数据框创建排名表?

python - 如何从 Python 回溯中消除自定义 __import__ 钩子(Hook)

python - 我可以在一行中/通过日志记录生成 Python 输出异常吗?

python - Django静态媒体不显示图片

python - 无法使用 pip install 安装 pika