为了账号安全,请及时绑定邮箱和手机立即绑定

finally块总是运行吗?

finally块总是运行吗?

慕码人8056858 2019-09-20 16:33:42
是否有任何条件最终可能无法在java中运行?谢谢。
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

来自Sun教程


注意:如果在执行try或catch代码时JVM退出,则finally块可能无法执行。同样,如果执行try或catch代码的线程被中断或终止,则即使应用程序作为一个整体继续,finally块也可能无法执行。


我不知道finally块不会执行的任何其他方式......


查看完整回答
反对 回复 2019-09-20
?
HUWWW

TA贡献1874条经验 获得超12个赞

System.exit关闭虚拟机。


终止当前运行的Java虚拟机。该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。


此方法exit在类中调用该方法Runtime。此方法永远不会正常返回。


    try {

        System.out.println("hello");

        System.exit(0);

    }

    finally {

        System.out.println("bye");

    } // try-finally

“bye”不会在上面的代码中打印出来。


查看完整回答
反对 回复 2019-09-20
?
慕斯709654

TA贡献1840条经验 获得超5个赞

只是为了扩展其他人所说的内容,任何不会导致JVM退出的事情都将导致finally块。所以方法如下:


public static int Stupid() {

  try {

    return 0;

  }

  finally {

    return 1;

  }

}

会奇怪地编译并返回1。


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 417 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信