疑问
看到很多博客上说,System.exit(status) ,status 为 0 就是正常退出,status 为 1 是非正常退出。
真的是这样吗?
代码测试
public class Test {
public static void main(String[] args) {
try{
throw new RuntimeException();
}catch (Exception e){
System.exit(0);
}finally {
System.out.println("正常退出");
}
}
}
假如 System.exit(0) 是正常退出,是不是应该执行 finally 代码块呢?
实际上是没有任何输出的。
源码解释
源码里对这个方法是这么说的:
立即停止 JVM。参数用作状态码;按照惯例,非零值表示非正常终止。
也就是说,这个状态码,是程序员写给程序员看的;对项目的运行来说,没有区别。