更改 python 的默认回溯行为包括项目路径中的更多代码?

est*_*est 5 python django error-handling callstack traceback

我正在运行一个中等大小的 django 项目,每当发生错误时都会打印回溯,但许多功能在 Django 模块中。

但是我自己的项目代码中的真正罪魁祸首,它只有一行,并且由于回溯深度限制而隐藏了有用的上下文。所以我想通过模块路径而不是调用深度来过滤调用堆栈。

如果您还没有看到这个问题,我在 Java 中一个非常相似的例子。我需要的是确保业务逻辑代码在异常中预先显示。

虽然我知道traceback.print_exc(),但是您需要将每个代码都包装在try ... except.

是否可以更改 python 的默认回溯行为,以便 django 的调用堆栈更少,而我自己的代码部分更大?

the*_*dor 3

每当出现未处理的异常时,Python 就会调用这个函数来进行打印

sys.excepthook(type, value, traceback)
Run Code Online (Sandbox Code Playgroud)

type:异常类

value:未处理的异常实例

追踪:追踪对象;与 sys.last_traceback 中存储的内容相同

阅读更多