python sys.exc_info()返回三元元组异常信息

sys.exc_info()

python标准库sys中的exc_info()方法,可以用于返回异常信息,可以使用try...except...语句来进行捕获。


sys.exc_info()返回值

该方法的返回值为python的三元元组类型,其部分源码如下:

exc_info(...)
    exc_info() -> (type, value, traceback)
    
    Return information about the most recent exception caught by an except
    clause in the current stack frame or in an older stack frame.

提示:“->”符号指定返回值。

sys.exc_info()返回的三元元组的各个元素详情如下表:

元素描述
type指定异常的对象类型
value指定异常对象的值
tracebacktraceback对象,一般包含导致异常的行数、位置等相关数据,就是python异常发生时终端中经常会输出的那部分内容,可以根据相应的提示,找到异常发生的代码行数。

sys.exc_infor()实例代码

如下代码编辑在一个py文件中,并非前面章节中经常使用的即时交互shell:

import sys
import traceback


try:
    1/0
except:
    tp, va, tb = sys.exc_info()
    print(tp)
    print(va)
    for filename,linenum,modulename,source in traceback.extract_tb(tb):
        print(filename,linenum,modulename,source)
#在终端中输入运行py文件的命令:python3 test.py(注意该命令与使用python test.py得到的输出结构有所不同),得到输出:
<class 'ZeroDivisionError'>
division by zero
test.py 6  1/0

全栈后端 / Python库 :









Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.