学习异常之前,大家应该搞明白两个问题,什么叫语法错误,什么叫做异常。先来看这个案例,Python3里面打印也就是调用print的时候,一定是这样的:
print("Hello world")
但如果把括号去掉,Python3之前,是没有括号的,再来看,编译器会给出这个提示,类似这样的提示:
这就叫做语法错误,你写的语法压根是不正确的。
异常是什么?异常是不正常的情况,往往是提前可以预知的,来看一个案例,大家都很清晰。如下代码:
print(2 / 0)
大家都知道,2 / 0是没有意义的,是已知的一个问题,不会有结果的。如果强制运行,会发生什么呢?程序报错了,ZeroDivisionError:
除数是不允许为0的,而我现在写成0了,类似这种问题的就是异常,而不是错误。这就属于异常,其实可以在这里面通过一些前面讲的条件语句来去判断除数是否等于零,然后绕过异常逻辑。
那我们现在来讲的异常,大家可能在输入的时候呢,不小心就把除数设置成为0了,这种情况或者说类似这样的情况,我们应该怎么去避免?
try except关键字是所有异常的处理流程,是这样的:
try:
xxxx
except:
...
else:
...
finally:
...
finally格式是这样的,我们先把异常的流程处理了,不管有没有异常,最终都执行finally语句。这里要注意else语句一定是放在except之后的。
如上,将处以0的语句通过try except语句包裹。运行一下,这就是简单的一个情况,不会再给你抛出异常了。