sys.exc_info()的使用

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值