python入坑第十九天|异常处理
2018-07-20 本文已影响2人
雨路浅歌
最近太忙,所以停更了两天,见谅!!!今天和大家一起来学习一下python中的异常处理。
异常处理在大部分编程语言中都是非常重要的,它可以使程序更加稳健。比如你要定义一个函数来让用户输入一个数来除10,那么当用户输入的是0的时候显然就会出错,程序也会终止,但是如果你在程序中写入了异常处理语句try...except...finally就可以避免这类问题。
异常有很多种类型,今天我们就只学习几个,更多知识还有待大家去挖掘,反正语法都是一样的。
ZeroDivisionError
顾名思义,这个就是0作为分母时就会出现这种错误,例子如下。
![](https://img.haomeiwen.com/i12048719/63c172ecc544d0d8.jpg)
我们可以捕获这种错误并添加提示信息方便用户重新输入,例子如下。
![](https://img.haomeiwen.com/i12048719/9a9d09263576a019.jpg)
当我们输入的数字不是0的时候,except语句就不会执行。
![](https://img.haomeiwen.com/i12048719/1b2a5ea39d0923eb.jpg)
我们还可以在其后添加finally语句,不管输入的数字是不是0,finally语句都会执行。
![](https://img.haomeiwen.com/i12048719/dedf1ea78b9bca1e.jpg)
![](https://img.haomeiwen.com/i12048719/6a3c815694d21249.jpg)
另外,我们也可以只使用try...finally...,不过我个人建议既然要捕捉异常就最好不要这样做,虽然没有错。
比如我们要打开文件,最后是要关闭文件的。
下面我只简单描述今天需要学习的其余错误类型。
TypeError
看名字还是很容易理解的,就是类型错误,比如1+'2'显然是不行的。
![](https://img.haomeiwen.com/i12048719/720e44253caab325.jpg)
IndexError
序列中没有该索引时发生的错误。
![](https://img.haomeiwen.com/i12048719/5d4626e98dfd3b8c.jpg)
KeyError
映射中没有该键。
![](https://img.haomeiwen.com/i12048719/e4b90b627f8f6d22.jpg)
捕获多个错误类型
当然,我们还可以捕获多个错误类型。
格式如下:
最后简单做个总结:python中的异常处理使用try...except...finally语句,当代码出现错误时,except中的代码才会执行,而finally中的代码是一定会执行的。
今天的内容就是这些,其实还有很多异常类型,这里就不一一举例了,大家可以自行去挖掘。
![](https://img.haomeiwen.com/i12048719/c7986983fed8ba94.jpg)