如果我在public static void main(String[] args)
中的某一行程式碼加上return;會使JVM得跳離main()
也就是結束程式,那請問和寫System. exit( 0)有何不同呢?
因為是在 public static void main(String[] args) 中 return...
所以其效果等同於 System. exit( ) ...
但是只要離開這個 method 之中...
那就會明顯的不同....
也許可以這麼說...
return => 回到上一層...
System. exit() => 回到最上層...
中的某一行程式碼加上return;會使JVM得跳離main()
也就是結束程式,那請問和寫System. exit( 0)有何不同呢?
因為是在 public static void main(String[] args) 中 return...
所以其效果等同於 System. exit( ) ...
但是只要離開這個 method 之中...
那就會明顯的不同....
也許可以這麼說...
return => 回到上一層...
System. exit() => 回到最上層...
System.
exit(0) 應該是一種中斷JVM的指令吧
連finally block遇到System.exit(0)之後都沒有辦法繼續執行了
從 System.exit() 來看,其實參數不管放什麼值,程式都會被終止,
但這個值可以被呼叫它的程式捕捉。例如我們可以在 Windows 寫一支批次檔,
用來執行這支程式,當程式執行完成或中斷後,exit() 的參數就會被傳出,
接著我們就可以判斷 ERRORLEVEL (傳出的值會放在這個變數) 來決定下一步要做什麼
了。