1.异常处理
1.什么是异常
我们在编写python程序的时候,有时候会碰到程序报错的情况,如我们运行下面这个程序
会出现这样的报错
我们的程序出现报错时就不能正常的运行下去,我们平常看到过SyntaxError,NameError,TypeError,ValueError等这些报错都是程序出现异常,当我们编写的python程序无法正常运行时就说明我们的程序出现了异常,当程序出现异常时,整个程序将终止,而我们需要将异常捕获,并处理,换句话说就是不让一颗老鼠屎坏了一锅粥。
2.处理异常
出现了异常我们常常使用 try/except 语句进行处理/
伪代码如下:
try;
运行的语句代码
except 名字:
如果try里面出现了异常,而运行的代码
代码示例如:
输入1, 2结果为:
try 里面的程序如果正常执行将会计算出1乘2的值,但由于没有转换类型于是出现了异常,进而运行了 except 里面的程序
3.抛出异常
我们可以使用raise语句来抛出异常。
1.我们可以使用Exception的子类,使用类的话会自动创建一个异常实例,抛出没有实际信息的普通异常
2.我们通过调用raise语句,并输入实例参数来抛出具有实际信息的异常
这样就抛出了 j = i + 1具有TypeError异常
3.如果我们抛出了异常并不想处理异常我们可以在 except 里面再次使用raise语句来抛出异常,使异常不被处理
(1)不使用raise再次抛出异常:
输出为:
异常被处理,没有抛出
(2)使用raise语句再次抛出异常:
输出为:
4.else的使用
伪代码如下:
try:
代码
exce 名字:
try中未出现异常时运行的代码
else:
try里面没有出现异常时运行的代码
我们可以通过else来输出一些其他的内容
5.finally的使用
既然有程序出现异常时通过except运行语句,有没有出现异常时通过else运行语句,那有没有,无论出不出现异常都运行的语句。我们可以通过finally实现无论try有没有出现异常都可以运行finally里面的语句。
伪代码:
try:
代码
exce 名字:
try中未出现异常时运行的代码
else:
try里面没有出现异常时运行的代码
finally:
无论try有没有出现异常都运行的代码
输入1,2结果为:
修改一下程序;
输入1,2结果为:
6.总结
我们在处理异常时要充分利用每个语句的特性,使程序更加的流畅,此外还有自定义异常,我们可以通过继承exception类(里面包含了许多异常错误),面向对象来创建一个对象,也就是自定义类,感兴趣的可试试创建自己的异常类。