疑問
看到很多博客上說,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。參數用作狀態碼;按照慣例,非零值表示非正常終止。
也就是說,這個狀態碼,是程序員寫給程序員看的;對項目的運行來說,沒有區別。