簡單講解java中throws與throw的區(qū)別
Java中throws和throw的區(qū)別講解
當(dāng)然,你需要明白異常在Java中式以一個對象來看待。
并且所有系統(tǒng)定義的編譯和運行異常都可以由系統(tǒng)自動拋出,稱為標(biāo)準(zhǔn)異常,但是一般情況下Java 強(qiáng)烈地要求應(yīng)用程序進(jìn)行完整的異常處理,給用戶友好的提示,或者修正后使程序繼續(xù)執(zhí)行。
直接進(jìn)入正題哈:
1.用戶程序自定義的異常和應(yīng)用程序特定的異常,必須借助于 throws 和 throw 語句來定義拋出異常。
1.1 throw是語句拋出一個異常。
語法:throw (異常對象);
throw e;
1.2 throws是方法可能拋出異常的聲明。(用在聲明方法時,表示該方法可能要拋出異常)
語法:[(修飾符)](返回值類型)(方法名)([參數(shù)列表])[throws(異常類)]{......}
public void doA(int a) throws Exception1,Exception3{......}
舉例:
throws E1,E2,E3只是告訴程序這個方法可能會拋出這些異常,方法的調(diào)用者可能要處理這些異常,而這些異常E1,E2,E3可能是該函數(shù)體產(chǎn)生的。
throw則是明確了這個地方要拋出這個異常。
如:
void doA(int a) throws IOException,{
try{
......
}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出錯了!");
}
if(a!=b)
throw new Exception3("自定義異常");
}
代碼塊中可能會產(chǎn)生3個異常,(Exception1,Exception2,Exception3)。
如果產(chǎn)生Exception1異常,則捕獲之后再拋出,由該方法的調(diào)用者去處理。
如果產(chǎn)生Exception2異常,則該方法自己處理了(即System.out.println("出錯了!");)。所以該方法就不會再向外拋出Exception2異常了,void doA() throws Exception1,Exception3 里面的Exception2也就不用寫了。
而Exception3異常是該方法的某段邏輯出錯,程序員自己做了處理,在該段邏輯錯誤的情況下拋出異常Exception3,則該方法的調(diào)用者也要處理此異常。
throw語句用在方法體內(nèi),表示拋出異常,由方法體內(nèi)的語句處理。
throws語句用在方法聲明后面,表示再拋出異常,由該方法的調(diào)用者來處理。
throws主要是聲明這個方法會拋出這種類型的異常,使它的調(diào)用者知道要捕獲這個異常。
throw是具體向外拋異常的動作,所以它是拋出一個異常實例。
throws說明你有那個可能,傾向。
throw的話,那就是你把那個傾向變成真實的了。
同時:
1、throws出現(xiàn)在方法函數(shù)頭;而throw出現(xiàn)在函數(shù)體。
2、throws表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這些異常;throw則是拋出了異常,執(zhí)行throw則一定拋出了某種異常。
3、兩者都是消極處理異常的方式(這里的消極并不是說這種方式不好),只是拋出或者可能拋出異常,但是不會由函數(shù)去處理異常,真正的處理異常由函數(shù)的上層調(diào)用處理。
到此這篇關(guān)于簡單講解java中throws與throw的區(qū)別的文章就介紹到這了,更多相關(guān)java中throws與throw的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Java Callable接口實現(xiàn)線程代碼實例
這篇文章主要介紹了基于Java Callable接口實現(xiàn)線程代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
SpringBoot2整合activiti6環(huán)境搭建過程解析
這篇文章主要介紹了SpringBoot2整合activiti6環(huán)境搭建過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
前端dist包放到后端springboot項目下一起打包圖文教程
這篇文章主要介紹了前端dist包放到后端springboot項目下一起打包的相關(guān)資料,具體步驟包括前端打包、將前端文件復(fù)制到后端項目的static目錄、后端打包、驗證部署成功等,需要的朋友可以參考下2025-01-01
java:程序包com.xxx.xxx不存在報錯萬能解決辦法
這篇文章主要給大家介紹了關(guān)于java:程序包com.xxx.xxx不存在報錯萬能解決辦法,這個問題曾逼瘋初學(xué)者的我,不過弄清楚原理后就很簡單了,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

