无论什么在最终块内部是执行的(几乎)总是,那么将代码封装其中或者让其保持未封闭的状态之间有什么区别呢?
啊哈...我想我明白你的意思了!花了我一点时间...你在想"为什么要把它放在finally块中,而不是在finally块之后并完全在try-catch-finally之外"。
例如,这可能是因为如果您抛出错误,则会停止执行,但您仍然希望清理资源,例如打开的文件、数据库连接等。
finally块的控制流要么在try块之后,要么在catch块之后。
[1. First Code]
[2. Try]
[3. Catch]
[4. Finally]
[5. After Code]
有异常情况 1 > 2 > 3 > 4 > 5 如果3有一个返回语句 1 > 2 > 3 > 4
无异常情况 1 > 2 > 4 > 5 如果2有一个返回语句 1 > 2 > 4