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

在我们的程序进行报错后,就要找寻一些处理报错的方法。有一种思路是,我们可以使用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 

#     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中提取程序信息的方法了,我们先找寻异常点的错误信息,然后进行信息的跟踪,最后再进行反馈,学会了的小伙伴可以试试上面的代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值