java中finally注意事项
在日常的开发中,我们经常听人说:
以下情况finally将不会被运行
finally代码块,将在try和catch代码块后调用, 但是也有不被调用情况 如下所示:
以下情况finally将不会被运行
- 调用System.exit()
- 调用 Runtime.getRuntime().halt(exitStatus)
- JVM首先崩溃
- JVM在try或catch块中达到了无限循环(或其他不间断,不终止的语句)
- 操作系统是否强行终止了JVM进程;例如,kill -9 <pid>在UNIX上
- 主机系统死机;例如,电源故障,硬件错误,操作系统崩溃等
- 该finally块将由守护程序线程执行并且所有其他非守护程序线程在finally调用之前退出
package com.java265.other; public class test { /* * java265.com finally运行的示例分享 */ public static void main(String[] args) { finallyNoRunTest(); } public static int finallyNoRunTest() { try { return 0; } finally { System.out.println("finally会运行"); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。