python打印捕获异常的信息_python怎么打印异常原因

捕获异常的操作

为了能够捕获异常,"except"语句必须有用相同的异常来抛出类对象或者字符串。

使用except而不带任何异常类型

你可以不带任何异常类型使用except,如下实例以上方式try-except语句捕获所有发生的异常。但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。print("test2")

try:

x = 1

y = 0

z= x/y

except:#捕获所有异常

print('there is problem')

else:

print('no problem')

finally:

print('end test2')

使用except而带多种异常类型

你也可以使用相同的except语句来处理多个异常信息,这些异常将被放在一个括号里成为一个元组,如下所示:try:

正常的操作except(Exception1[, Exception2[,...ExceptionN]]]):

发生以上多个异常中的一个,执行这块代码else:

如果没有异常执行这块代码print('test3')

try:

x = 1

y = 0

z= x/y

except (NameError,ZeroDivisionError):

print("problem is (NameError,ZeroDivisionError)")

except (RuntimeError, TypeError):

print("problem is (RuntimeError, TypeError)")

except:

print("problem")

raise

else:

print("no problem")

finally:

print('end test3')

最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。import sys

try:

f = open('myfile.txt')

s = f.readline()

i = int(s.strip())

# except OSError as err:

# print("OS error: {0}".format(err))

except ValueError:

print("Could not convert data to an integer.")

except:

print("Unexpected error:", sys.exc_info()[0])

for i in sys.exc_info():

print(i)

raise Exception('line xxx')

finally:

print("end")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值