天天看點

Java基礎——異常(2)

throws 和

throw 有什麼差別?

1、位置不同:throws用在函數上,後面跟的是異常類,可以跟很多個。

throw用在函數内,後面跟的是異常對象。

2、功能不同:throws用來聲明異常,讓調用者知道功能有可能出現問題,并由調用者可以給出預先的處理方式。

throw抛出具體問題對象。執行到throw功能已經結束了,跳轉到調用者(誰調用跳哪去),并将具體的問題對象抛給了調用者。

異常體系最大的特點就是體系中的類以及類産生的對象,都具備可抛性。可抛性的意思就是可以被throws和throw所操作的。

異常的原則:

1、功能内部有異常抛出,功能上一定要throws聲明。

     内部抛什麼異常類型,功能上就聲明什麼。聲明的目的就是為了讓調用者處理(抛或者try

catch),如果調用者不處理,編譯失敗。

2、特殊情況:

當函數内通過throw抛出RuntimeException及其子類異常對象時,函數可以不用throws聲明,。不聲明的目的就是不讓調用者處理,讓調用者程式停止,要對代碼進行修改。

Exception分為兩種:

1、編譯時會被檢測的異常。

2、運作時異常(編譯時不檢測)。

自定義異常:在自定義的程式中,如果有了問題,也可以像java中的異常一樣,對問題進行描述。

舉例:定義一個功能可以實作除法運算,但是除數不可以為負數。

Java基礎——異常(2)