注册

详解sys.exc_info()(获取当前异常信息)函数的使用方法

Python中的sys.exc_info()函数提供了当前处理的异常信息的详细描述,包括异常类型,异常对象和跟踪回溯信息(逐级调用的函数列表)。该函数通常在异常处理程序中使用,以便处理程序能够获取有关出现的异常的完整信息。它返回一个元组,其中包含三个元素:异常类型、异常对象和堆栈回溯信息。

使用方法

  • 语法:sys.exc_info()

  • 参数:无

返回值:一个元组,包含三个元素:异常类型、异常对象和跟踪回溯信息(逐级调用的函数列表)。

示例1

import sys

try:
    print(10/0)
except:
    exc_type, exc_obj, exc_tb = sys.exc_info()
    print("Exception type:", exc_type)
    print("Exception object:", exc_obj)
    print("Exception trace:", exc_tb)

输出结果:

Exception type: 
Exception object: division by zero
Exception trace: 

在这个例子中,我们在try块中进行了一个除以0的操作,这将引发ZeroDivisionError异常。在except块中,我们使用sys.exc_info()函数获取异常类型、异常对象和堆栈跟踪信息,并将其打印到控制台上。

示例2

import sys

try:
    file = open("hello.txt", "r")
except:
    exc_type, exc_obj, exc_tb = sys.exc_info()
    print("Exception type:", exc_type)
    print("Exception object:", exc_obj)
    print("Exception trace:", exc_tb)

输出结果:

Exception type: 
Exception object: [Errno 2] No such file or directory: 'hello.txt'
Exception trace: 

在这个例子中,我们尝试打开一个不存在的文件,这将引发FileNotFoundError异常。然后我们使用sys.exc_info()函数获取异常类型、异常对象和堆栈跟踪信息,并将其打印到控制台上。

总结

sys.exc_info()函数提供有关当前处理的异常的详细信息,包括异常类型、异常对象和堆栈跟踪信息。它通常用于异常处理程序中,以帮助处理程序获取异常的完整信息,并根据需要采取适当的措施。