Python 中 try-except-else-finally 语句的用法?

推荐答案

-- -------------------- ---- -------
----
    - --------
    ------ - -- - -
------ ------------------
    - --------
    ---------------
-----
    - ---------------
    -------------- -------
--------
    - ----------------
    -------------

本题详细解读

try 块

try 块包含可能会引发异常的代码。如果在 try 块中的代码执行时发生异常,程序会立即跳转到 except 块。

except 块

except 块用于捕获并处理 try 块中发生的异常。你可以指定捕获特定类型的异常(如 ZeroDivisionError),或者捕获所有异常(使用 except Exception as e)。

else 块

else 块是可选的,只有在 try 块中的代码没有引发任何异常时才会执行。它通常用于处理那些只有在没有异常时才需要执行的代码。

finally 块

finally 块也是可选的,但无论 try 块中的代码是否引发异常,finally 块中的代码都会执行。它通常用于释放资源或执行清理操作。

执行顺序

  1. 首先执行 try 块中的代码。
  2. 如果 try 块中的代码引发异常,程序会跳转到对应的 except 块。
  3. 如果没有异常发生,程序会执行 else 块中的代码。
  4. 无论是否有异常发生,finally 块中的代码都会在最后执行。

示例解释

在上面的示例中:

  • try 块中尝试执行 10 / 2,这个操作不会引发异常。
  • 因为没有异常发生,else 块中的代码会执行,输出 计算结果: 5.0
  • 最后,finally 块中的代码会执行,输出 执行完毕

如果 try 块中的代码改为 10 / 0,则会引发 ZeroDivisionError 异常,程序会跳转到 except 块,输出 除零错误发生,然后执行 finally 块中的代码。

纠错
反馈