1、异常处理:try-except语句
python异常信息中最重要的部分是异常类型,它表明发生异常原因,也是程序处理异常的依据。
python使用try-except语句实现异常处理,其基本语法格式:
try:
<语句块1>
except <异常类型>:
<语句块2>
为上述小程序增加异常处理:
try:
num = eval(input("请输入一个整数:"))
print(num**2)
except NameError:
print("输入错误,请输入一个整数!")
结果为:
=
请输入一个整数:NO
输入错误,请输入一个整数!
>>>
2、异常和错误
编程语言的异常和错误是两个相似但不同的概念。
异常(checked exception):可以预见的例外情况,例如程序期望获得数字输入却得到了其他字符输入、打开一个不存在的文件等。
错误(unchecked exception):一些因为程序编码逻辑产生的不可预见的例外情况,错误发生后程序无法恢复执行。
3、异常的高级用法
try-except语句可以支持多个except语句,语法格式如下:
try:
<语句块1>
except <异常类型1>:
<语句块2>
...
except <异常类型N>:
<语句块N+1>
except:
<语句块N+2>
其中,第1到第N个except语句后面都指定了异常类型,说明这些except所包含的语句块只处理这些类型的异常。最后一个except语句没有指定任何类型,表示它所对应的语句块可以处理所有其他异常。
除了try和except保留字外,异常语句还可以与else和finally保留字配合使用,语法格式如下 :
try: #放置最想要检测的部分
<语句块1>
except <异常类型1>: #放置想要捕获的异常,以及出现异常后的处理
<语句块2>
else: #放置不出现异常时要执行的部分
<语句块3>
finally: #放置无论如何都要执行的部分
<语句块4>
实例:
try:
alp = "ABCDEFGHIJKLMNOPQRSUVWXYZ"
idx = eval(input("请输入一个整数:"))
print(alp[idx])
except NameError:
print("输入错误,请输入一个整数!")
else:
print("没有发生异常。")
finally:
print("程序执行完毕。")
结果为:
=
请输入一个整数:5
F
没有发生异常。
程序执行完毕。
>>>
=============== RESTART: F:/软件/python/练习1/text4/try-except.py ===============
请输入一个整数:NO
输入错误,请输入一个整数!
程序执行完毕。
>>>
总结:
python能识别多种异常类型,但不建议编写程序时过度依赖try-except这种异常处理机制。try-except异常一般只用来检测极少发生的情况,例如,用户输入的合规性或文件打开是否成功等。面对商业应用的软件产品,稳定性和可靠性是最重要的衡量指标之一。即使这类产品也不会滥用try-except类型语句。因为采用try-except语句会影响代码的可读性,增加代码维护难度,因此,一般只在关键地方采用try-except类型的语句处理可能发生的异常。