gpt4 book ai didi

java - Java 中的finally block 总是被执行吗?

转载 作者:行者123 更新时间:2023-12-01 18:17:41 25 4
gpt4 key购买 nike

考虑到这段代码,我可以绝对确定 finally block 始终执行,无论 something() 是什么? p>

try {  
something();
return success;
}
catch (Exception e) {
return failure;
}
finally {
System.out.println("I don't know if this will get printed out");
}

最佳答案

是的,finally try执行后会被调用或catch代码块。

唯一的一次finally不会被调用的是:

  1. 如果您调用System.exit()
  2. 如果您调用Runtime.getRuntime().halt(exitStatus)
  3. 如果 JVM 先崩溃
  4. 如果 JVM 在 try 中达到无限循环(或某些其他不可中断、非终止语句)或catch block
  5. 如果操作系统强制终止JVM进程;例如,kill -9 <pid>在 UNIX 上
  6. 如果主机系统死机;例如,电源故障、硬件错误、操作系统 panic 等等
  7. 如果 finally block 将由守护线程执行,所有其他非守护线程在 finally 之前退出被称为

关于java - Java 中的finally block 总是被执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60335279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com