在我们的程序进行报错后,就要找寻一些处理报错的方法。有一种思路是,我们可以使用traceback来对错误的地方进行跟踪,然后对错误的信息进行整合和传回。这样我们可以利用传回的信息进行错误分析,从而分析问题的所在点。下面小编就为大家详细的带来traceback在python中提取程序信息的方法。
traceback模块
作用:traceback模块被用来跟踪异常返回信息
importtraceback#调用traceback模块 try: ifstr(123)>5: print('这是一个无法执行的错误') exceptException: traceback.print_exc()#返回错误信息 #控制台输出结果: #Traceback(mostrecentcalllast): #File"D:/pycharm/S9/pythontext/main.py",line27,in<module> #ifstr(123)>5: #TypeError:'>'notsupportedbetweeninstancesof'str'and'int'
类似在没有try……except之前,出现异常解释器报错形式。
此报错信息也可以直接存储在文件中!
Python的traceback module提供一整套接口用于提取,格式化和打印Python程序的stack traces信息,下面我们通过例子来详细了解下这些接口:
#!/usr/bin/envpython3 importtraceback importsys deffunc(): raiseException("--funcexception--") defmain(): try: func() exceptExceptionase: 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中提取程序信息的方法了,我们先找寻异常点的错误信息,然后进行信息的跟踪,最后再进行反馈,学会了的小伙伴可以试试上面的代码。