异常这个东西还是蛮重要的,学过Java的话看这个会熟悉点。
总的来说Python的异常处理就是try… except…finally的过程,比如:
a=1
b=0
print(a/b)
>>>
ZeroDivisionError: division by zero
b为0 那么它肯定不能做分母了吧,上面我们拿它去做分母,人家Python肯定就不通过了,直接告诉你分母是0 赶紧修复。那如果说你这个异常提醒不好看,我想用中文去提醒,怎么办?
a=1
b=0
try:
print(a/b)
except ZeroDivisionError:
print("0不能做分母")
>>>
0不能做分母
我们知道它会报ZeroDivisionError这个异常,所以我们使用try except去捕获了它,捕获之后做我们想做的处理。
有的时候,在我们捕获了异常之后还想做一点其它补救操作,这个时候finally就派上用场了,它不管你之前有没有异常,都会在你执行完之后调用:
a=1
b=0
try:
print(a/b)
except ZeroDivisionError:
print("0不能做分母")
finally:
print("最后处理")
>>>
0不能做分母
最后处理
在Python中,还有一个比较好玩的事情,比如上面那个分母不可以是0 ,如果是0就会报ZeroDivisionError,那么这个ZeroDivisionError是怎么来得?Python定义好的?那么我们自己能不能也去定义一个规则呢?
class MyError(ValueError):
pass
a=1
if a==1:
raise MyError("a不能等于1")
>>>
MyError: a不能等于1
哈哈,这个是不是很好玩?可以发挥你自己的聪明才智随便玩。