【问题标题】:How to format traceback objects in Python如何在 Python 中格式化回溯对象
【发布时间】:2009-09-04 12:19:51
【问题描述】:

我有一个回溯对象,我想以调用traceback.format_exc() 时得到的良好格式显示它。

这个有内置函数吗?还是几行代码?

【问题讨论】:

    标签: python object format traceback


    【解决方案1】:

    在任何地方都找不到这个,所以我把它贴在这里给未来的人和我未来的自己。

    try:
      raise Exception('Not an Exception')
    except Exception as err:
      msg = "".join(traceback.format_exception(type(err), err, err.__traceback__))
      print(msg)
    

    这会接受您的异常并提供与 python 的默认异常打印机/print_tb 格式相同的字符串

    【讨论】:

      【解决方案2】:

      format_exc 真的只是

          etype, value, tb = sys.exc_info()
          return ''.join(format_exception(etype, value, tb, limit))
      

      因此,如果您准备好异常类型、值和回溯,应该很容易。如果您有例外,请注意format_exception 本质上是。

          list = ['Traceback (most recent call last):\n']
          list = list + format_tb(tb, limit)
      

      limit 默认为 None。

      【讨论】:

      • 我想我是唯一一个不明白这个答案的人......这个答案没有说明在哪里导入format_tb,而是使用内置的list 作为多变的。而且我仍然不明白如何打印回溯。
      【解决方案3】:

      【讨论】:

        【解决方案4】:

        traceback 文档提供 few exampleswhole set of functions 用于格式化回溯对象。

        【讨论】:

          【解决方案5】:

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-01-16
            • 1970-01-01
            • 1970-01-01
            • 2014-09-11
            • 1970-01-01
            • 1970-01-01
            • 2010-12-08
            • 1970-01-01
            相关资源
            最近更新 更多