【问题标题】:change python's default traceback behavior include more code from project path?更改 python 的默认回溯行为包括来自项目路径的更多代码?
【发布时间】:2016-03-15 12:30:00
【问题描述】:

我正在运行一个中等规模的 django 项目,每当发生错误时都会打印回溯,但是很多函数都包含 Django 模块。

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

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

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

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

【问题讨论】:

    标签: python django error-handling callstack traceback


    【解决方案1】:

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

    sys.excepthook(type, value, traceback)
    

    类型:异常类

    value:未处理的异常实例

    traceback:一个trackeback对象;与 sys.last_traceback 中存储的相同

    Read more

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-22
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2017-12-05
      相关资源
      最近更新 更多