Python获取异常信息sys.exc_info()函数详解

在 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() 方法来清除堆栈跟踪对象。

本文链接:https://my.lmcjl.com/post/17541.html

展开阅读全文

4 评论

留下您的评论.