python程序异常处理
在python程序中,若用户输入的字符不符合程序规定,例如用户需输入数字,则程序正常进行,若用户输入的不是数字,则需要异常处理提醒用户进行正确的操作。
一 . python中使用try-expect语句实现异常处理,其基本语法格式如下:
try:
<语句块1>
except <异常类型>:
<语句块2>
语句块1是正常执行的程序内容,当发生异常时执行except保留字后面的语句块2,为小程序增加异常处理。例如:
try:
num = eval(input("请输入一个整数:"))
print(num**2)
except NameError:
print("输入错误,请输入一个整数!")
>>>
请输入一个整数:happy
输入错误,请输入一个整数!
二 .异常的高级用法
try-except语句可以支持多个except语句,语法格式如下:
try:
<语句块1>
except <异常类型1>:
<语句块2>
...
except <异常类型N>:
<语句块N+1>
except:
<语句块N+2>
其中,第1个到第N个except语句后面都指定了异常类型,说明这些except所包含的语句块只处理这些类型的异常。最后一个except没有指定任何类型的异常,表示它对应的语句块可以处理其他所有类型异常(分支结构的一种表达方式)。例如:
该程序将用户输入的数字作为索引从字符串a中返回一个字符,当用户输入非整数字时,except NameError异常被捕获到,提醒用户输入类型错误,当用户输入的数字不在0~25之间时,异常被except捕获,程序打印其他错误信息。
三 .异常语句配合else和finally保留字的使用
基本格式如下:
try:
<语句块1>
except <异常类型1>:
<语句块2>
else:
<语句块3>
finally:
<语句块4>
- 正常处理时,不执行except异常类型,即语句块2,直接执行else语句块3。最后执行finally语句块4。
- 异常处理时,执行except异常处理的语句块,不会执行else语句块3。最后执行finally语句块4。
- 注意:不管异常与否,finally语句块一定会执行!可以将程序执行语句块1的一些收尾工作放在这里了,例如 关闭、打开文件等。
采用else和finally修改代码如下:
【注】try-except异常一般只用来检测极少发生的情况,例如用户输入的合规性或者打开文件是否成功等。采用此异常处理会影响代码的可读性,增加代码维护难度,因此一般只在关键地方采用。对于面向商业应用的软件产品,稳定性和可靠性是最重要的衡量指标之一。
四.拓展 异常和错误的区别 以及 python异常信息含义说明.
1.异常和错误的区别
编程语言的异常和错误是两个相似但不同的概念。异常和错误都可能引起程序错误而退出,它们属于程序没有考虑到的例外情况,然而,绝大多数不可控因素是可以预见的。可以预见的例外情况称为异常,异常发生后经过妥善处理可以继续执行;不可预见的例外情况称为错误,错误发生后程序无法恢复执行,而且程序本不该处理这类可能的例外。
2.python异常信息含义说明
以上内容摘自python语言程序设计基础(第2版)嵩天老师等人著+小编自己的整理与理解