Python中的异常处理函数(try、except、else、finally)
Python中的异常处理函数用来处理程序运行中遇到的错误和异常情况,它们包括try、except、else、finally,下面就对每个函数进行详细的讲解。
1. try
try语句用来尝试执行包含在其中的代码块,并捕获其中可能产生的异常。如果try语句中的代码块执行成功,则跳过后面的except块,直接执行else语句,最后执行finally语句,其中except和else语句块只需满足一个即可存在,finally语句块可省略。
2. except
except语句用来捕获try语句中可能产生的异常,和其他语言一样,except语句块在遇到异常时被执行。可以在except语句块中使用特定的异常类型,也可以使用通用的Exception捕获所有异常。如果有多个except语句,则按照它们在代码中出现的顺序被尝试。
3. else
else语句块在try语句块执行成功且没有抛出异常时被执行。它通常用来执行与try语句块相关的操作,例如清理工作。else语句块和except语句块只能存在一个。
4. finally
finally语句块总是会被执行,无论有无异常抛出。它通常用来释放资源或者在程序执行完毕后进行清理工作。finally语句块可省略。
通过上述4个语句的组合,我们可以灵活地处理程序可能出现的异常情况,避免程序崩溃和数据的丢失,提高程序的稳定性和鲁棒性。
下面是一个简单的例子,使用try-except-else-finally四个异常处理函数来处理除法运算异常:
try:
a = int(input("请输入被除数:"))
b = int(input("请输入除数:"))
c = a / b
except ZeroDivisionError:
print("不能除以0!")
else:
print("计算结果为:", c)
finally:
print("程序执行完毕!")
在程序中,try块中进行除法运算,如果除数为0,则跳到except块进行处理,输出“不能除以0!”;如果计算成功,则跳到else块输出计算结果;无论成功与否,都要进行finally块,输出“程序执行完毕!”。
正常情况下的输出结果如下:
请输入被除数:9 请输入除数:3 计算结果为: 3.0 程序执行完毕!
如果输入被除数9和除数0,则输出结果如下:
请输入被除数:9 请输入除数:0 不能除以0! 程序执行完毕!
在以上的异常处理过程中,try-except-else-finally的异常处理流程为:
- 尝试输入被除数和除数;
- 如果输入正确,则尝试进行除法运算;
- 如果除数为0,则跳到except块进行异常处理;
- 如果除数不为0,则跳到else块进行输出操作;
- 最后进行finally块,无论是否出现异常都输出“程序执行完毕!”。
