導航:首頁 > 編程語言 > throw用法Java

throw用法Java

發布時間:2024-04-04 14:27:54

『壹』 java中throw和throws的區別

都是關鍵字

throw用於代碼當中拋出異常;throws用於方法名結尾定義方法拋出的異常類型。

例如

inta=1;
thrownewException();
system.out.println("a");

在throw這行控制台會報Exception異常,如果你new的是NullPointException就會報空指針異常,你拋什麼他報什麼。下面的輸出不會執行,程序終止。

如果使用了異常處理,例如

inta=1;
try{
a=2;
thrownewException();
a=3;
}catch(Exceptione){
systemt.out.println(a);
a=4;
}
system.out.println(a);

這樣在a賦2後手動拋異常,被catch捕獲,然後輸出a、a賦4,最終結果是輸出2、4。

而throws用途:

publicvoidmethod()throwsException{...}

這個方法被調用後,如果這個方法里出了錯,這個錯誤就會被拋給引用它的那個方法。在控制台就會看到一層一層拋上去的引用棧。

『貳』 JAVA閲岄潰鐨則hrow鏄鍋氫粈涔堢敤鐨勶紵錛熷疄闄呯紪紼嬩腑鏈変粈涔堟牱鐨勫簲鐢錛燂紵錛

throw鍏抽敭瀛楅氬父鐢ㄥ湪鏂規硶浣撲腑錛屽苟涓旀姏鍑轟竴涓寮傚父瀵硅薄銆
紼嬪簭鍦ㄦ墽琛屽埌throw璇鍙ユ椂絝嬪嵆鍋滄錛屽畠鍚庨潰鐨勮鍙ラ兘涓嶆墽琛屻
閫氳繃throw鎶涘嚭寮傚父鍚庯紝濡傛灉鎯沖湪涓婁竴綰т唬鐮佷腑鏉ユ崟鑾峰苟澶勭悊寮傚父錛
鍒欓渶瑕佸湪鎶涘嚭寮傚父鐨勬柟娉曚腑浣跨敤throws鍏抽敭瀛楀湪鏂規硶澹版槑涓鎸囨槑瑕佽窇鍑虹殑寮傚父錛
濡傛灉瑕佹崟鎹塼hrow鎶涘嚭鐨勫紓甯革紝鍒欏繀欏諱嬌鐢╰ry鈥攃atch璇鍙ャ
瀹為檯緙栫▼涓鐨勫簲鐢ㄤ篃闈炲父騫挎硾,姣斿備綘鎯沖皾璇曠潃璺戝嚭鏌愪釜寮傚父鏉ラ獙璇佹煇琛屼唬鐮佹垨鑰呮槸瑕佽窇鍑鴻嚜瀹氫箟鐨勫紓甯
,浣犲氨鍙浠ョ洿鎺throw new xxxException.榪樻湁鍦ㄤ竴涓搴炲ぇ鐨勯」鐩涓璬ebug鏄鍗佸垎涓嶆柟渚跨殑,浣犲彲浠ュ湪鏂規硶鍋氫釜鎷︽埅
try{
throw new NullPointerException();
}catch(NullPointerException e){
e.printStackTrace();
}
榪欐牱鍙浠ユ墦鍗板嚭鍫嗘爤淇℃伅,澶уぇ鏂逛究浜嗕綘瀵規暣涓鏂規硶鐨勭悊瑙.榪樻湁寰堝氱殑搴旂敤,浣犲彲浠ュ皾璇曠潃鍘誨彂鐜板摕銆

『叄』 java異常 throws與throw的用法

第一:throw最重要的用法,不是先捕獲再拋出,而是第一次拋出的時候,如

publicintdivide(inta,intb)throwsDivideZeroException{
if(b==0)
thrownewDivideZeroException("can'tdivide0");
returna/b;
}

然後:先捕獲再拋出,是這樣用的。

publicintdoSomeThing(intx,inty){
try{
inta=divide(x+y,x-y);
intb=divide(x-y,x+y);
returna*b;
}catch(DivideZeroExceptione){
thrownewRuntimeException("dosomethingerror",e);
}
}

而且也可以不拋出,在本級就處理了。

publicintdoSomeThing(intx,inty){
try{
inta=divide(x+y,x-y);
intb=divide(x-y,x+y);
}catch(DivideZeroExceptione){
Loggerlogger=Logger.getLogger(getClass());
logger.info("dosomethingerror",e);
return-1;
}
}

你問到:使用了throws的方法中即使沒有throw,也依然可以拋出異常啊

回答:那是因為拋出的異常不是你手動拋出的,而是來自於你調用的方法(其根源還是在這個方法中用throw拋出的,或者是這個方法調用的方法)。

閱讀全文

與throw用法Java相關的資料

熱點內容
優先順序隊列java 瀏覽:152
輕量化騰訊雲伺服器有什麼用 瀏覽:458
編譯原理自編譯語言 瀏覽:421
閑魚app為什麼這么多 瀏覽:688
安卓手機玩游戲不卡怎麼設置 瀏覽:568
編譯鏈接裝載書 瀏覽:537
面試騰訊公司程序員 瀏覽:108
一個字母y是什麼app 瀏覽:142
魔獸大腳解壓安裝教程 瀏覽:7
超時代共享文件夾破解版 瀏覽:441
命令與征服紅色警戒3攻略 瀏覽:724
解壓縮jar包 瀏覽:586
如何計算伺服器的最大並發數 瀏覽:345
java數組類型定義 瀏覽:850
安卓卡一和卡二怎麼切換 瀏覽:985
用價值觀統領演算法強化責任 瀏覽:783
外匯阿里雲伺服器買哪一種類型 瀏覽:448
紹興程序員接私活攻略 瀏覽:644
java獲取上傳圖片 瀏覽:49
主次梁交叉處箍筋加密長度 瀏覽:967