System.exit(0) 与 System.exit(1) 在运行上有何区别

疑问

看到很多博客上说,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。参数用作状态码;按照惯例,非零值表示非正常终止。

也就是说,这个状态码,是程序员写给程序员看的;对项目的运行来说,没有区别。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章