。当try块中的代码引发异常时,程序的执行流程会立即跳转到与之对应的Catch块。Catch块用于捕获并处理try块中引发的异常。如果try块中的代码没有引发异常,那么Catch块将不会执行。
在Catch块中,可以对异常进行处理,例如输出错误信息、记录日志、进行错误恢复等操作。Catch块可以捕获特定类型的异常,也可以捕获所有类型的异常。如果有多个Catch块,它们会按照顺序进行匹配,只有第一个匹配的Catch块会执行。
以下是一个示例代码:
try:
# 可能引发异常的代码
result = 10 / 0
except ZeroDivisionError:
# 捕获ZeroDivisionError类型的异常
print("除数不能为零")
except Exception as e:
# 捕获所有类型的异常
print("发生了异常:", str(e))
else:
# 如果try块中的代码没有引发异常,则执行else块
print("没有发生异常")
finally:
# 无论是否发生异常,都会执行finally块
print("最终执行的代码")
# 输出结果:
# 除数不能为零
# 最终执行的代码
在上述示例中,try块中的代码引发了ZeroDivisionError类型的异常,因此程序跳转到对应的Catch块,输出"除数不能为零"。然后,程序执行finally块中的代码,输出"最终执行的代码"。
需要注意的是,如果在try块中引发了异常,但没有对应的Catch块来处理该异常,那么异常将会向上层调用栈传播,直到找到能够处理该异常的Catch块或者程序终止。
领取专属 10元无门槛券
手把手带您无忧上云