python之错误处理

同java一样,在python中也有try 。。。except。。。。finaly的错误处理机制


try:
    print('try...')
    r=5/0
    print('result:',r)
except ZeroDivisionError as e:
    print('except',e)
finally:
    print('finally....')
print('end')

比如上面这串代码,因为被除数不能为0所以在try中会出现错误,而出现错误之后,result是不会打印出来的,而是直接跳转到except中并打印出错误信息,执行完except之后,如果有finally语句,就一定会执行完,所以无论有没有finally都会执行。

结果为:


try...
except: division by zero
finally...
END

这里出现的错误是ZeroDivisionError错误,python中还有很多的错误,比如ValueError错误,所以,在这个错误机制中我们可以设置多个except语句来捕捉不同的错误,比如,


try:
    print('try...')
    r = 10 / int('a')
    print('result:', r)
except ValueError as e:
    print('ValueError:', e)
except ZeroDivisionError as e:
    print('ZeroDivisionError:', e)
finally:
    print('finally...')
print('END')

因为多了一个int()函数,所有有可能出现值错误,接着,你也可以在except后面加一个else函数来打印无错误来提醒自己。

可以看出,其实和java一样,错误都是继承类,他们的父类都为BaseException,所以,如果写了多个except语句但是里面包含父子类,那么只会被父类给捕获:

更多错误:https://docs.python.org/3/library/exceptions.html#exception-hierarchy

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值