|
1
158
是的,最后一个街区总是在…除非:
此外,如果finally块中的方法抛出未捕获的异常,则在该异常之后将不执行任何操作(即,将像在任何其他代码中那样抛出异常)。一个很常见的情况是
顺便说一句,我猜想您使用的代码示例只是一个示例,但是要小心将实际逻辑放入finally块中。最后一个块用于资源清理(关闭数据库连接、释放文件句柄等),而不是用于必须运行的逻辑。如果它必须在try-catch块之前运行,远离可能引发异常的内容,因为您的意图在功能上几乎是相同的。 |
|
|
2
9
对。 查看 documentation :
例外情况:
|
|
|
3
1
The finally block always executes when the try block exits 。除非您有System.exit(0)in your try or catch。 |
|
|
4
1
对。
|
|
|
5
0
不管你的情况如何,最终都会被执行。
对于未检查的异常,Java不强制、错误处理。 这就是原因,如果finally块中发生未选中的异常,并且没有对此进行任何处理,则不会执行在此点下方写入的代码(发生错误的地方)。 所以我建议总是处理所有的例外情况,不管是检查还是取消检查。 这样,无论是否也发生未选中的异常,您都可以确保finally中的代码块也被执行。你有一个地方在次窝捕捉,最后阻止你的必要工作完成。 |
|
|
6
0
最后,总是执行块。
}
|
|
|
M.Jane · 组织和编写异常类的正确方法 8 年前 |
|
|
shubham daharwal · java中的内部捕获异常 8 年前 |
|
|
Jon · 如何在不需要任何操作的情况下处理Python异常 8 年前 |
|
|
felix1415 · C++捕获(标准::异常和e)与捕获(…) 8 年前 |
|
k0pernikus · 如何在scala中键入可能引发异常的函数? 8 年前 |