try...catch..finally中finally代码块是否一定会执行?

在Java中,try...catch..finally中finally代码块是否一定会执行?比如说下面这段代码。

加载中...
finallyjavatry catch
2
248
小课
小课2022-05-06 18:50
1 个回答

除了在执行finally代码块之前出现了以下几种情况,finally代码块都会在执行完try...catch之后执行。

  • 调用了退出进程的方法,比如说Runtime.getRuntime().halt(int)、Runtime.getRuntime().exit(int)、System.exit(int)等。
  • 虚拟机发生崩溃或者虚拟机进程被系统强制终止。
  • finally所在的线程是守护线程(daemon thread),而其它所有的非守护线程都已经结束。
2
小课
小课2022-05-06 18:52
你的回答

内容