我什么时候应该在Java的try-catch-finally中使用finally-block

pop*_*tea 14 java exception-handling

我何时应该使用代码段A而不是代码段B(即使用代码段A的好处是什么)?:

片段A:

try {
    // codeblock A
}
catch (Exception ex) {
    // codeblock B
}
finally {
    //codeblock C
}
Run Code Online (Sandbox Code Playgroud)

代码片段B:

try {
    // codeblock A
}
catch (Exception ex) {
    // codeblock B
}

//codeblock C
Run Code Online (Sandbox Code Playgroud)

duf*_*ymo 15

如果您有必须执行的代码,请使用finally块,无论是否抛出异常.

清理数据库连接等稀缺资源就是一个很好的例子.

  • 如果有人在catch区块中输入了回报,则无法保证. (2认同)