美文网首页
【Python模块】traceback - 打印或检索堆栈回溯

【Python模块】traceback - 打印或检索堆栈回溯

作者: 4thirteen2one | 来源:发表于2019-05-13 18:48 被阅读0次

    traceback — Print or retrieve a stack traceback

    源码: Lib/traceback.py


    该模块提供了一个标准接口,用于提取、格式化和打印Python程序的栈跟踪。它在打印栈跟踪时完全模仿了Python解释器的行为。当您想要在程序控制下打印栈跟踪时,例如在解释器周围的“包装器”中,这很有用。

    该模块使用 traceback 对象——存储在 sys.last_traceback 变量中的对象类型,并作为 sys.exc_info() 中的第三个项返回。

    sys.exc_info() 返回一个 tuple (type, value, traceback)
    type 为异常类型,
    value 为异常实例
    traceback 为 traceback 对象

    该模块定义了以下函数:

    • traceback.print_tb(tb, limit=None, file=None)
      默认打印所有层级的栈跟踪信息;若 limit 为正,则可打印指定层数信息。
      默认输出至 sys.stderr;也可指定 file 输出至文件
    • traceback.print_exception(etype, value, tb, limit=None, file=None, chain=True)
      利用 traceback 对象 tb 将 exception 信息和栈跟踪条目打印到文件。
      • print_tb() 的区别在于以下方面:
        • tb 不是 None,则只打印最近一次的 Traceback
        • 在堆栈跟踪后附加上异常 etype 和值 等信息
        • type(value)SyntaxError 并且 value 具有适当的格式,则它会打印出现语法错误的行,并使用插入符号指示错误的大致位置。
      • 可选的 limit 参数与 print_tb() 中的含义相同。
      • chaintrue(默认值),则也将打印 chained exceptions(__cause____context__ 属性),就像解释器本身在打印未处理的异常时所做的那样。
    • traceback.print_exc(limit=None, file=None, chain=True)
      print_exception(*sys.exc_info(), limit, file, chain) 的简写。
    • traceback.format_exc(limit=None, chain=True)
      print_exc(limit) 类似,但是返回一个字符串而不是打印到文件。

    相关文章

      网友评论

          本文标题:【Python模块】traceback - 打印或检索堆栈回溯

          本文链接:https://www.haomeiwen.com/subject/jbvraqtx.html