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

change python's default traceback behavior include more code from project path?

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

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

如果你还没有看到这个问题,我有 an very similar example in Java。我需要的是确保业务逻辑代码在异常中预先显示。

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

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

每当出现未处理的异常时,Python 调用此函数进行打印

sys.excepthook(type, value, traceback)

类型:异常class

value: 未处理的异常实例

traceback:一个trackeback对象;与 sys.last_traceback

中存储的内容相同

Read more