Python traceback模块

转载请注明出处:https://blog.csdn.net/jinixin/article/details/80383853


Python的traceback模块用于从程序运行的堆栈中提取,格式化或打印程序目前执行的上下文信息。



两个对象


初看该模块就觉得该模块的方法普遍存在两种形式,比如extract_tb(tb)与extract_stack(f),这两个方法看上去功能就是一样的,只是一个接收tb参数,一个接收f参数。那么问题来了,这两个参数分别是什么呢?


1)tb:traceback对象

调用sys.exec_info()返回值是个三元组(exc_type, exc_value, exc_traceback)。其中exec_type为异常类名,exc_value为异常类实例,个人认为也就是错误原因,exec_traceback则是跟踪记录对象,即traceback对象。该对象提供了发生异常的上下文,包含代码的执行帧,异常发生时的执行行号等信息。


2)f:frame对象

其是程序目前执行处的堆栈信息,个人认为其应该包含有traceback对象。



常用方法


1)traceback.extract_tb(tb, limit=None)

返回从traceback对象中提取到的错误列表,也就是我们平时看到的错误信息。


2)traceback.extract_stack(f=None, limit=None)

返回从当前程序堆栈中的traceback对象里提取到的错误列表,返回值和extract_tb()一致。


3)traceback.format_stack(f=None, limit=None)

该方法是format_list(extract_stack(f, limit))的缩写。


文中如有不当之处,还望包容和指出,感谢~


参考链接:

https://docs.python.org/3/library/traceback.html


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值