Java System.exit()退出程序方式
Java System.exit()退出程序
在java 中退出程序,經(jīng)常會(huì)使用System.exit(1) 或 System.exit(0),其中返回的status的值為0代表正常退出,非零代表異常退出。
使用該方法可以在圖形界面編程中實(shí)現(xiàn)程序的退出功能等。
exit(int)方法終止當(dāng)前正在運(yùn)行的 Java 虛擬機(jī),參數(shù)解釋為狀態(tài)碼。
根據(jù)慣例,非 0 的狀態(tài)碼表示異常終止。
而且,該方法永遠(yuǎn)不會(huì)正常返回。
這是唯一一個(gè)能夠退出程序并不執(zhí)行finally的情況。
語法
public static void exit(int status);
number(數(shù)字)
- 方法1(程序正常退出):
System.exit(0);
- 方法2(程序強(qiáng)制退出):
System.exit(1);
注意:
- System.exit(0);
- 這第一個(gè)字母(S)為大寫。
返回
- 無
原理
當(dāng) status為0 時(shí)正常退出程序, 當(dāng)status為非0數(shù)字時(shí)異常退出。 終止當(dāng)前的Java虛擬機(jī)。
System.exit()方法返回程序的最頂層, return和它相比是返回上一層。
當(dāng)程序執(zhí)行到System.exit()方法后就會(huì)停止運(yùn)行。
如果希望程序遇到System.exit后只退出當(dāng)前用例,不退出當(dāng)前程序,可以考慮在異常中做手腳。
例子
輸入一個(gè)數(shù)字,判斷小于、大于、等于50。
當(dāng)輸入一個(gè)小于50的數(shù)時(shí),先輸出“這是一個(gè)小于50的數(shù)”,然后再加一個(gè)正常退出指令,即 System.exit(0) 。
最后在這個(gè)退出指令后再加一句輸出“蝸牛1號(hào)”的代碼。
如果代碼運(yùn)行到這一部分就結(jié)束且看不到“蝸牛1號(hào)”則說明程序已經(jīng)正常退出了。
同理來理解大于50、等于50的情況,內(nèi)容可以看代碼來理解。
/**所想: 停止當(dāng)前程序運(yùn)行: 方法1: System.exit(0); 方法2: System.exit(1); 方法1為正常退出當(dāng)前程序,方法2為強(qiáng)制退出當(dāng)前程序。 */
import java.util.Scanner; class Demo{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); System.out.print("請(qǐng)輸入一個(gè)數(shù)字:"); float number_1=scanner.nextFloat(); //這里輸入一個(gè)數(shù)字 if(number_1<50){ System.out.println("這是一個(gè)小于50的數(shù)"); System.exit(0); //正常退出程序 System.out.println("蝸牛1號(hào)"); } else if(number_1>50){ System.out.println("這是一個(gè)大于50的數(shù)"); //這里不放退出程序 System.out.println("蝸牛2號(hào)"); } else{ System.out.println("50的數(shù)字,但不知蝸牛3號(hào)出不出來"); System.exit(1); System.out.println("蝸牛3號(hào)"); } } }
分別輸入34、88、50的運(yùn)行結(jié)果
public static void main(String[] args) { try { System.out.println("this is try"); System.exit(0); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { System.out.println("this is finally"); } }
**這段程序最后只會(huì)輸出 this is try 這一句話,而不會(huì)輸出 this is finally 。
**退出虛擬機(jī)會(huì)直接殺死整個(gè)程序,已經(jīng)不是從代碼的層面來終止程序了,所以finally不會(huì)執(zhí)行。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot如何實(shí)現(xiàn)分離資源文件并打包
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)分離資源文件并打包,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06JavaWeb實(shí)現(xiàn)顯示mysql數(shù)據(jù)庫數(shù)據(jù)
MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的。本文將利用JavaWeb實(shí)現(xiàn)顯示mysql數(shù)據(jù)庫數(shù)據(jù)功能,需要的可以參考一下2022-03-03Spring加載properties文件的兩種方式實(shí)例詳解
這篇文章主要介紹了Spring加載properties文件的兩種方式,需要的朋友可以參考下2018-02-02Java List簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java中可變數(shù)組的原理就是不斷的創(chuàng)建新的數(shù)組,將原數(shù)組加到新的數(shù)組中,下文對(duì)Java List用法做了詳解。需要的朋友參考下吧2017-05-05Spring Security實(shí)現(xiàn)動(dòng)態(tài)路由權(quán)限控制方式
這篇文章主要介紹了Spring Security實(shí)現(xiàn)動(dòng)態(tài)路由權(quán)限控制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08