📜  Python中的finally关键字(1)

📅  最后修改于: 2023-12-03 14:46:37.717000             🧑  作者: Mango

Python 中的 finally 关键字

在 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 是一个非常有用的关键字,它可以帮助你在出现异常时清理资源。