【Python】学习笔记09
示例一
在上面例子中,如果不加分支语句,那用户输入9会怎么样?
示例二
这是不是出问题了?
但是千万不要恐惧红色的信息,我们来观察一下,line45代表第四十五行出现了问题,由于在input函数中输入了非整数的信息,所以eval函数在去掉引号后,产生了错误,所以发生在第一行。在输出的最后会出现异常提示。
NameError是异常类型,后面是异常内容提示。在我们输入字符串”abc”之后,eval将双引号去掉,此时就是abc变量,但是abc变量未定义,所以提示就是未定义。
异常处理的基本使用
为了让程序稳定的运行,我们需要加入程序的异常处理。
try :
<语句块1>
except :
<语句块2>
我们把要执行的语句放在语句块1中,如果出现异常,我们会执行except中的语句块2。
如果不出现异常,就直接执行语句块1后面的语句。
有时候为了进一步区分异常的类型,会使用下面的句型。
try :
<语句块1>
except <异常类型>:
<语句块2>
我们把异常类型放入except,只有在我们确定的异常时,才会执行except后面的语句块2。
在这个过程中,我犯了一个错误,
没有注意到try后面的冒号,
也就是说,只要有冒号,就得注意缩进,哈哈,又加强了一次认识。
这表明针对这种异常,我们来执行异常后面的语句。
标注异常类型后,仅响应该异常,
异常类型名字等同于变量,
异常名字是Python内部定义的,不用增加字符串表示,只需要给出名称即可。
在try except之后,还有else,finally来引导语句块3和4
try :
<语句块1>
except :
<语句块2>
else:
<语句块3>
finally:
<语句块4>
所不同的是finally对应语句块4一定执行,
else对应的语句块3在不发生异常时执行
不要求熟练掌握这种异常处理方式,大家掌握try except 方法,就已经可以处理异常操作。