標籤:
異常:Java運行期間發生的問題就是異常,另外,Java中運行時發生的除了異常Exception還有錯誤Error。
異常:可以有針對性的處理方式;錯誤:通常發生後不會有針對性的處理方式,往往是系統層級的問題,無法針對處理,只能修正代碼。
舉個例子:對給定的數組同過給定的交表擷取元素,
class Demo{/*對給定的數組通過給定的角標擷取元素。*/int getElement(int[] arr,int index){/*它所提供的資訊不夠給力。想要更清晰,需要自己寫。它的拋出不滿足我們的要求。準備自己拋。*/if(arr==null){throw new NullPointerException("arr指向的數組不存在");}if(index<0 || index>=arr.length){//該條件如果滿足,功能已經無法繼續運算。這時 就必須結束功能,並將問題告知給調用者。這時就需要通過異常來解決。//怎麼用呢?//1,建立一個異常對象。封裝一些提示資訊(自訂)。//2,需要將這個對象告知給調用者。怎麼告知呢?怎麼將這個對象傳遞到調用者處呢?通過關鍵字throw就可以完成。 throw 異常對象;//3,throw用在函數內,拋出異常對象,並可以結束函數。throw new ArrayIndexOutOfBoundsException("錯誤的角標,"+index+"索引在數組中不存在");}自訂異常:
上邊的Exception中的異常不好認,準備定義一個符合我的程式要求的問題名稱以及問題的資訊,其實異常就是講問題,封裝成了對象。
查閱API發現:
Throwable
|--Error
|--Exception
Throwable是異常和錯誤的父類,自訂異常被拋出,必須是繼承Throwable或者Throwable的子類,該對象才可以被Throw拋出。
聲明和捕獲:
聲明:將問題標識出來,報告給調用者。
如果函數內通過throw拋出了編譯時間異常,而捕獲,那麼必須通過throws進行聲明,讓調用者去處理。
捕獲:Java中對異常有針對性的語句進行捕獲。
語句:
try
{
//需要被檢測的語句。
}
catch(異常類 變數)//參數。
{
//異常的處理語句。
}
finally
{
//一定會被執行的語句。
}
throw和throws的區別?
1,throw用在函數內。
throws用在函數上。
2,thorw拋出的是異常對象。
throws用於進行異常類的聲明,後面異常類可以有多個,用逗號隔開。
class Demo{void show()throws Exception{throw new Exception();}}class {public static void main(String[] args) {System.out.println("Hello World!");}}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
java中的“異常”