異常出現的原因
1.使用者輸入錯誤:使用者在需要填入資料的時候,將不符合要求的資料進行添加。例如需要輸入一個整型的資料,而使用者卻輸入了一個字串類型的資料。此時就應當提示使用者輸入的格式錯誤,並返回介面重新輸入。
2.代碼本身錯誤:進行資料運算時,資料的長度引起的錯誤,或者是數組越界、演算法錯誤、Null 參考等問題
3.環境因素:磁碟空間或者記憶體不足所引起的錯誤。
異常的分類
Error:定義Java運行時的內部錯誤以及資源耗盡錯誤。表示很難恢複的錯誤,例如記憶體越界。一般不期望使用者來進行處理。
RuntimeException:用來表示設計或者實現方面的問題,例如數組越界、類型轉換錯誤、去訪問一個沒有初始化的對象。在出現這個錯誤的時候,一般不需要處理,啟動並執行時候,環境會輸出一條資訊語句,提示使用者修正錯誤。
其他異常:表示是啟動並執行時候因環境因素影響可能發生並可以被處理的問題。例如尋找不到檔案或者是一個不完整的路徑等。因為使用者的錯誤很可能就會導致這類問題的發生。
處理異常
在出現異常的時候,可以直接捕獲處理,也可以先不對它進行處理而是把它拋給上面的調用者。
try/catch捕獲異常、throws聲明異常、throw拋出異常、自訂異常等。
進行異常處理的時候,可能會將拋出異常的代碼放置到try塊中,然後建立一個catch語句塊,catch語句塊中有一個異常類型和一個代表這個類型的對象引用。
異常聲明就是指一個方法不處理它所產生的異常,而是調用層次向上傳遞,誰調用的這個方法,這個異常就由誰來進行處理。
Throw語句用在具體方法中拋出異常,它的文法格式如下:
throw exception;
在以上的語句中,throw是關鍵字,用於拋出異常。參數exception則是表示要拋出的異常對象,該對象應該是throwable類的子類,而且只能夠是一個。
兩個或者是多個不同的異常出現在同一個程式中,並且會發生嵌套拋出就是異常鏈,異常鏈是一個比較抽象的概念。
定義自己的異常
前面介紹了一些Java本身內建的一些異常,但是在某些特定的情況下,還需要自己去建立一個異常類型,建立異常類型只需要繼承Throwable類或者是它的子類Exception就可以了。本節中就主要介紹一下如何使用自己定義的異常類。
建立異常的一般形式如文法:
class 類名 extends Exception
{
//類體
}
如何使用自己建立的異常類?