throw和throws有什么不同?


共同點:

兩者在拋出異常時,他們只管把異常拋出,並不處理異常,由調用者負責處理。

區別

(1)throw語句總是出現在方法體里面,用來拋出一個異常,表示在這個地方就有一個異常出現,程序會在throw后面立即終止,它后面的語句將執行不到。

而throws是出現在方法名的后面,用來把方法中出現的異常拋出去給調用者處理。

當方法中出現了異常自己不想處理,那么可以使用throws在方法名后面將異常拋出

去給調用者處理。

(2)throw只能拋出一個異常對象。

而throws可以在方法名后面一次性拋出多個異常,多個異常對象以逗號分隔。

(3)throw拋出異常時,調用它的方法時可以不聲明或不捕獲,雖編譯器不會報錯,但是從開發角度說還是要使用try-catch來處理這個異常。

而throws拋出異常時,調用它的方法時也要聲明拋出異常或者進行try-catch捕獲,否則編譯會報錯。

 

 

二、throw

1、throw是語句拋出一個異常,一般是在代碼塊的內部,當程序

現某種邏輯錯誤時由程序員主動拋出某種特定類型的異常

2、定義在方法體內

3、創建的是一個異常對象

4、確定了發生哪種異常才可以使用

三、throws

1、在方法參數列表后,throws后可以跟着多個異常名,表示拋出的異常用逗號隔開

2、表示向調用該類的位置拋出異常,不在該類解決

3、可能發生哪種異常

 

throws用在方法聲明后面,跟的是異常類名,throw用在方法體內,跟的是異常對象名。

     throws可以跟多個異常類名,用逗號隔開,throw只能拋出一個異常對象名。

     throws表示拋出異常,由該方法的調用者來處理,throw表示拋出異常,由方法體內的語句處理。

throws表示出現異常的一種可能性,並不一定會發生這些異常,throw則是拋出了異常,執行throw則一定拋出了某種異常。

 

四、異常

異常概述:

異常:異常是指在程序的運行過程中所發生的不正常的事件,它會中斷正在運行的程序。簡單來說就是程序出現了不正常的情況。異常本質就是Java當中對可能出現的問題進行描述的一種對象體現。

如果我們不做任何處理,異常將會交由虛擬機來處理

虛擬機的處理方式:

把異常的名稱,異常出現的位置,異常原因,等信息輸出打印在控制台,並同時將  程序停止執行。

在寫程序時,對可能會出現異常的部分通常要用try{...}catch{...}去捕捉它並對它進行處理;

用try{...}catch{...}捕捉了異常之后一定要對在catch{...}中對其進行處理,那怕是最簡單的一句輸出語句,或棧輸入e.printStackTrace();

如果是捕捉IO輸入輸出流中的異常,一定要在try{...}catch{...}后加finally{...}把輸入輸出流關閉;

如果在函數體內用throw拋出了某種異常,最好要在函數名中加throws拋異常聲明,然后交給調用它的上層函數進行處理。

 

 

參考:

https://baijiahao.baidu.com/s?id=1692578578844100859&wfr=spider&for=pc

https://www.cnblogs.com/zhangsonglin/p/10556402.html

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM