public static void exit(int status)
該方法調用 Runtime
類中的 exit
方法。該方法永遠不會正常返回。
調用 System.exit(n)
實際上等效於調用:
Runtime.getRuntime().exit(n)
status
- 退出狀態。 虛擬機的關閉序列包含兩個階段。在第一個階段中,會以某種未指定的順序啟動所有已注冊的關閉鉤子 (hook)
(如果有的話),並且允許它們同時運行直至結束。在第二個階段中,如果已啟用退出終結
,則運行所有未調用的終結方法。一旦完成這個階段,虛擬機就會暫停
。
如果在虛擬機已開始其關閉序列後才調用此方法,那麼若正在運行關閉鉤子,則將無限期地阻斷此方法。如果已經運行完關閉鉤子,並且已啟用退出終結 (on-exit finalization),那麼此方法將利用給定的狀態碼(如果狀態碼是非零值)暫停虛擬機;否則將無限期地阻斷虛擬機。
System.exit
方法是調用此方法的一種傳統而便捷的方式。
參數:status
- 終止狀態。按照慣例,非零的狀態碼表明非正常終止。
1 /** 2 * Terminates the currently running Java Virtual Machine. The 3 * argument serves as a status code; by convention, a nonzero status 4 * code indicates abnormal termination. 5 * <p> 6 * This method calls the <code>exit</code> method in class 7 * <code>Runtime</code>. This method never returns normally. 8 * <p> 9 * The call <code>System.exit(n)</code> is effectively equivalent to 10 * the call: 11 * <blockquote><pre> 12 * Runtime.getRuntime().exit(n) 13 * </pre></blockquote> 14 * 15 * @param status exit status. 16 * @throws SecurityException 17 * if a security manager exists and its <code>checkExit</code> 18 * method doesn't allow exit with the specified status. 19 * @see java.lang.Runtime#exit(int) 20 */ 21 public static void exit(int status) { 22 Runtime.getRuntime().exit(status); 23 }
例子加強理解:
在一個if-else判斷中,如果我們程序是按照我們預想的執行,到最後我們需要停止程序,那麼我們使用System.exit(0),而System.exit(1)一般放在catch塊中,當捕獲到異常,需要停止程序,我們使用System.exit(1)。這個status=1是用來表示這個程序是非正常退出。