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是用來表示這個程序是非正常退出。