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