在 Python 中,sys.exc_info() 方法用于获取当前线程最后一个引发异常的相关信息。
它返回一个包含三个元素的元组 (type, value, traceback),分别表示引发的异常类型、异常对象和异常的堆栈跟踪对象。如果没有异常被引发,则返回 (None, None, None)。
下面是 sys.exc_info() 方法的使用示例:
import sys
def func():
try:
a = 1 / 0
except:
print(sys.exc_info())
func()
上面的代码中,我们在 func() 函数中故意引发了一个除以零的异常。在 except 块中,我们调用了 sys.exc_info() 方法,然后打印了返回的元组。运行代码,输出结果如下:
(class ZeroDivisionError, ZeroDivisionError(division by zero), traceback object at 0x7f17a4093d00)
可以看到,返回的元组中第一个元素为异常类型 ZeroDivisionError,第二个元素为异常对象 ZeroDivisionError(division by zero),第三个元素为堆栈跟踪对象 traceback object at 0x7f17a4093d00。
sys.exc_info() 方法常用于在捕获异常后获取相关的异常信息,例如记录日志、打印错误信息等。值得注意的是,当使用 sys.exc_info() 方法获取异常信息后,需要及时清除异常信息,以避免内存泄漏。一般可以使用 sys.exc_clear() 或者 traceback.clear_frames() 方法来清除堆栈跟踪对象。
【文章原创作者:韩国高防服务器 http://www.558idc.com/krgf.html 网络转载请说明出处】