• 技术文章 >Python技术 >Python基础教程

    traceback如何在python中提取程序信息?

    小妮浅浅小妮浅浅2020-12-09 17:47:54原创3888

    在我们的程序进行报错后,就要找寻一些处理报错的方法。有一种思路是,我们可以使用traceback来对错误的地方进行跟踪,然后对错误的信息进行整合和传回。这样我们可以利用传回的信息进行错误分析,从而分析问题的所在点。下面小编就为大家详细的带来traceback在python中提取程序信息的方法。

    traceback模块

    作用:traceback模块被用来跟踪异常返回信息

    import traceback  # 调用traceback模块
    try:
        if str(123) > 5:
            print('这是一个无法执行的错误')
    except Exception:
        traceback.print_exc()  # 返回错误信息
     
    # 控制台输出结果:
    # Traceback (most recent call last):
    #   File "D:/pycharm/S9/pythontext/main.py", line 27, in <module>
    #     if str(123) > 5:
    # TypeError: '>' not supported between instances of 'str' and 'int'

    类似在没有try……except之前,出现异常解释器报错形式。

    此报错信息也可以直接存储在文件中!

    Python的traceback module提供一整套接口用于提取,格式化和打印Python程序的stack traces信息,下面我们通过例子来详细了解下这些接口:

    #!/usr/bin/env python3
      
    import traceback
    import sys
     
    def func():
        raise Exception("-- func exception --")
     
    def main():
        try:
            func()  
        except Exception as e:
            exc_type, exc_value, exc_obj = sys.exc_info()
            traceback.print_tb(exc_obj)
     
    if __name__ == "__main__":
    main()

    这里我们可以发现打印的异常信息更加详细了,下面我们了解下print_tb的详细信息:

    traceback.print_tb(tb[, limit[, file]])

    tb: 这个就是traceback object, 是我们通过sys.exc_info获取到的

    limit: 这个是限制stack trace层级的,如果不设或者为None,就会打印所有层级的stack trace

    file: 这个是设置打印的输出流的,可以为文件,也可以是stdout之类的file-like object。如果不设或为None,则输出到sys.stderr。


    以上就是我们使用traceback在python中提取程序信息的方法了,我们先找寻异常点的错误信息,然后进行信息的跟踪,最后再进行反馈,学会了的小伙伴可以试试上面的代码。

    专题推荐:traceback
    上一篇:使用Python中的Tablib库 下一篇:Shell eval变量获取环境变量的方法

    相关文章推荐

    • 什么是网络协议• python中的去除重复项的操作• python中少见的函数map()和partial()• python的sort()排序方法• Python中的文件读写-理论知识

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网