python的程序异常处理

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类型的语句处理可能发生的异常。

猜你喜欢

转载自blog.csdn.net/langezuibang/article/details/106408453