sys.exc_info()返回的值是一个元组,其中第一个元素,exc_type是异常的对象类型,exc_value是异常的值,exc_tb是一个traceback对象,对象中包含出错的行数、位置等数据。然后通过print_exception函数对这些异常数据进行整理输出。
示例代码:
import sys
import traceback
def func(a, b):
return a / b
if __name__ == '__main__':
try:
func(1, 0)
except Exception as e:
print("print_exception():", e)
exc_type, exc_value, exc_tb = sys.exc_info()
print('the exc type is:', exc_type)
print('the exc value is:', exc_value)
print('the exc tb is:', exc_tb)
traceback.print_exception(exc_type, exc_value, exc_tb)
运行结果:
对于exc_tb中数据详情看的话,查看traceback.format_tb方法:python中traceback.format_tb()用法详解