最终块总是在Java中执行吗?考虑到这段代码,我能绝对肯定认为finally块总是执行,无论发生什么。something()是?try {
something();
return success; } catch (Exception e) {
return failure; } finally {
System.out.println("I don't know if this will get printed out");}
4 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
是,finally
将在执行try
或catch
代码块。
唯一的一次finally
不会被称为:
- 如果你调用
System.exit()
- 如果JVM首先崩溃
- 如果jvm到达无限循环(或其他不可中断、非终止的语句),则
或try
块catch
- 如果操作系统强制终止JVM进程,例如,
论UNIXkill -9 <pid>
- 如果主机系统死亡,例如电源故障、硬件错误、操作系统恐慌等等
- 如果
块将由守护进程线程执行,所有其他非守护进程线程将在此之前退出。finally

富国沪深
TA贡献1790条经验 获得超9个赞
try { return true; } finally { return false; }
添加回答
举报
0/150
提交
取消