📅  最后修改于: 2023-12-03 14:46:37.717000             🧑  作者: Mango
在 Python 中,finally 是一个关键字,它用于定义一个代码块,这个代码块无论是否出现异常,都会被执行。finally 块通常用于释放资源或清理操作,因为它总是会被执行,所以常常被用在异常处理中。
下面是一个使用 finally 的简单示例:
try:
# 可能会抛出异常的代码
except Exception:
# 异常处理的代码
finally:
# 无论是否出现异常,都会执行的代码
在上面的代码中,try 代码块是可能会抛出异常的代码,Exception 是一个异常类型,except 块会捕获这个异常并进行处理,最后 finally 块会执行无论是否出现异常的代码。
在下面的示例中,我们使用 finally 来确保一个文件被正确关闭:
try:
f = open('file.txt', 'r')
# 对文件进行一些操作
except Exception as e:
print(f'发生了一个异常:{e}')
finally:
f.close()
在上面的代码中,我们打开一个名为 file.txt 的文件,对它进行一些操作。如果在操作文件时出现异常,except 块会将异常打印出来。最终,无论是否出现异常,我们都会执行一个 f.close() 调用来关闭文件。
当然,在进行异常处理时,你可能只想处理特定类型的异常。在这种情况下,可以使用 except 关键字后跟一个异常类型,只有当抛出的异常是指定类型时,它才会被处理,如下所示:
try:
# 可能会抛出异常的代码
except ValueError:
# 处理 ValueError 异常的代码
except ZeroDivisionError:
# 处理 ZeroDivisionError 异常的代码
finally:
# 无论是否出现异常,都会执行的代码
在上面的代码中,如果出现 ValueError 异常,它将被第一个 except 块处理,如果出现 ZeroDivisionError 异常,它将被第二个 except 块处理,最后 finally 块中的代码总是会被执行。
总之,finally 是一个非常有用的关键字,它可以帮助你在出现异常时清理资源。