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。參數用作狀態碼;按照慣例,非零值表示非正常終止。

也就是說,這個狀態碼,是程序員寫給程序員看的;對項目的運行來說,沒有區別。

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