Python:sys模块的exc_info()函数(例外的堆栈追踪1)
2018-11-04 11:53
369 查看
[code]""" 1.sys.exc_info()可返回一个元组对象,分别为例外的类型、例外类的实例、traceback对象,比如下面的例子返回 (<class 'ZeroDivisionError'>, ZeroDivisionError('division by zero',), <traceback object at 0x0000000002EDD048>) 2.traceback对象代表了调用堆栈中每一层次的追踪,可使用tb_next获取更深层次的调用堆栈 3.tb_frame代表了该层追踪的所有对象信息 4.f_code可以获取该层的程序信息,co_filename则表示该程序所在的文件,co_name可获取函数或者模块的名称 """ import time,sys def m(): return 1 / 0 def n(): m() def p(): n() if __name__ == '__main__': try: p() except: ttype,tvalue,ttraceback = sys.exc_info() print(ttype,tvalue,end="\n") i = 1 while ttraceback: print("第{}层堆栈信息".format(i)) tracebackCode = ttraceback.tb_frame.f_code print("文件名:{}".format(tracebackCode.co_filename)) print("函数或者模块名:{}".format(tracebackCode.co_name)) ttraceback = ttraceback.tb_next i += 1 time.sleep(1) print("继续执行")
阅读更多
相关文章推荐
- Python:sys模块的excepthook()函数(例外的堆栈追踪6)
- Python:traceback模块的print_exc()函数(例外的堆栈追踪2)
- Python:traceback模块的format_exc()函数(例外的堆栈追踪3)
- Python:traceback模块的print_tb()函数(例外的堆栈追踪4)
- Python:traceback模块的format_tb()函数(例外的堆栈追踪5)
- python中使用sys模板和logging模块获取行号和函数名的方法
- Python---sys模块常用函数
- python中使用sys模板和logging模块获取行号和函数名的方法
- python中使用sys模板和logging模块获取行号和函数名的方法
- python 捕捉错误,exception,traceback和sys.exc_info()比较
- Python 3.3 try catch所有的错误Error,不包括Exception。关键在于 sys.exc_info()
- python_模块与函数学习笔记
- Python OS模块常用函数说明
- Python OS模块常用函数说明
- 【python】python re模块中几个比较重要的函数
- 三、Python:函数、模块、文档字符串
- python模块—command and sys
- Python模块及函数的使用
- Head_first_python 第二章共享你的代码 函数模块
- linux下追踪函数调用堆栈