在Python中,`finally`关键字用于定义一个代码块,这个代码块的特点是无论`try`块中的代码是否引发异常,或者在`try`块中执行了`return`、`break`、`continue`等控制流语句,`finally`子句中的代码都会被执行。`finally`通常与`try`和`except`一起使用,形成一个`try-except-finally`结构,用于确保在程序退出前执行一些清理操作,比如释放资源、关闭文件等。
下面是一个简单的例子来说明`finally`的用法:
try:
尝试执行的代码块
f = open('/tmp/output', 'w')
f.write('hello')
raise Exception('something wrong') 可以取消注释引发异常
except Exception as e:
发生异常时要执行的代码段
print(f"An exception occurred: {e}")
else:
未发生异常会执行的代码段
print("No exception occurred")
finally:
无论是否发生异常,都会在最后执行一次的代码段
print("closing file")
f.close()
在这个例子中,无论`try`块中是否发生异常,`finally`块中的`print("closing file")`和`f.close()`都会被执行,确保文件被正确关闭