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会运行");
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


