sys.exc_info():获取异常信息
sys中,可以有两个方法返回异常的全部信息,分别是exc_info()和last_traceback(),这两个函数功能用法相同。
exc_info方法会将当前的异常信息以元组的形式返回,元组中有三个元素:
type:异常类型的名称
value:捕获到的异常实例
traceback:一个traceback对象
import sys
try:
x=int(input("请输入一个被除数:"))
print("30除以",x,"等于",30/x)
except:
print(sys.exc_info())
print("其他异常...")
结果:
请输入一个被除数:0
(<class ‘ZeroDivisionError’>, ZeroDivisionError(‘division by zero’,), <traceback object at 0x7ff8c642d0c8>)
其他异常…
想要查看traceback对象包含的内容,需要引入traceback模块,然后调用其中的print_tb方法,并将sys.exc_info()输出的traceback对象作为参数输入。例如:
import sys
import traceback
try:
x=int(input("请输入一个被除数:"))
print("30除以",x,"等于",30/x)
except:
#print(sys.exc_info())
traceback.print_tb(sys.exc_info()[2])
print("其他异常...")
结果为:
请输入一个被除数:0
其他异常…
File “/home/ssn/swan/practice/tornado.py”, line 21, in
print(“30除以”,x,“等于”,30/x)
感谢原作者的文章:http://www.360doc.com/content/19/0808/11/9824753_853649602.shtml