推荐答案
-- -------------------- ---- ------- ---- - -------- ------ - -- - - ------ ------------------ - -------- --------------- ----- - --------------- -------------- ------- -------- - ---------------- -------------
本题详细解读
try 块
try
块包含可能会引发异常的代码。如果在 try
块中的代码执行时发生异常,程序会立即跳转到 except
块。
except 块
except
块用于捕获并处理 try
块中发生的异常。你可以指定捕获特定类型的异常(如 ZeroDivisionError
),或者捕获所有异常(使用 except Exception as e
)。
else 块
else
块是可选的,只有在 try
块中的代码没有引发任何异常时才会执行。它通常用于处理那些只有在没有异常时才需要执行的代码。
finally 块
finally
块也是可选的,但无论 try
块中的代码是否引发异常,finally
块中的代码都会执行。它通常用于释放资源或执行清理操作。
执行顺序
- 首先执行
try
块中的代码。 - 如果
try
块中的代码引发异常,程序会跳转到对应的except
块。 - 如果没有异常发生,程序会执行
else
块中的代码。 - 无论是否有异常发生,
finally
块中的代码都会在最后执行。
示例解释
在上面的示例中:
try
块中尝试执行10 / 2
,这个操作不会引发异常。- 因为没有异常发生,
else
块中的代码会执行,输出计算结果: 5.0
。 - 最后,
finally
块中的代码会执行,输出执行完毕
。
如果 try
块中的代码改为 10 / 0
,则会引发 ZeroDivisionError
异常,程序会跳转到 except
块,输出 除零错误发生
,然后执行 finally
块中的代码。