在Python的异常处理机制中,finally
和else
块的作用如下:
一、finally
块的作用
-
确保清理操作执行
无论是否发生异常,
finally
块中的代码都会被执行。通常用于释放资源(如关闭文件、释放内存等)或执行收尾工作。 -
执行位置
-
在
try
块执行完毕后(无论是否发生异常) -
在
except
块执行完毕后(如果有异常被捕获)
-
二、else
块的作用
-
异常未触发时执行
当
try
块中的代码未发生任何异常时,else
块中的代码会被执行。这适用于需要验证操作成功的情况。 -
异常触发时被跳过
如果
try
块中发生异常并被except
块捕获,else
块将不会执行
三、使用示例
try:
result = 10 / 2
except ZeroDivisionError:
print("除数不能为零")
else:
print("结果:", result)
finally:
print("执行清理操作")
-
输出 :
结果: 5.0 执行清理操作
(因为除法正常执行,异常未触发,
else
和finally
均执行)
四、注意事项
-
finally
和else
是可选的,但推荐使用finally
进行资源清理,else
用于逻辑验证。 -
多个
except
块可处理不同异常类型,except (ExceptionType1, ExceptionType2)
可捕获多个异常。