異常:是在運行時期發生的不正常情況。 異常類:在java中用類的形式對不正常情況進行了描述和封裝對象,描述不正常的情況的類。 異常就是java通過面向對象的思想將問題封裝成了對象.用異常類對其進行描述。 異常體系:不同的問題用不同的類進行具體的描述。 比如角標越界。空指針等等。問題很多,意味著描述的 ...
異常:是在運行時期發生的不正常情況。
- 異常類:在java中用類的形式對不正常情況進行了描述和封裝對象,描述不正常的情況的類。
- 異常就是java通過面向對象的思想將問題封裝成了對象.用異常類對其進行描述。
- 異常體系:不同的問題用不同的類進行具體的描述。 比如角標越界。空指針等等。問題很多,意味著描述的類也很多,將其共性進行向上抽取
- 不正常情況就分為了兩大類。
- Throwable:無論是error,還是異常,問題,問題發生就應該可以拋出,讓調用者知道並處理。
- throws throw ,凡是可以被這兩個關鍵字所操作的類和對象都具備可拋性.
- 一般不可處理的。Error是由jvm拋出的嚴重性的問題
- 可以處理的。Exception
自定義異常:自定義的問題描述
異常的分類:
1,編譯時被檢測異常:只要是Exception和其子類都是,除了特殊子類RuntimeException體系。這種問題一旦出現,希望在編譯時就進行檢測,讓這種問題有對應的處理方式。
這樣的問題都可以針對性的處理。
2,編譯時不檢測異常(運行時異常):就是Exception中的RuntimeException和其子類。
這種問題的發生,無法讓功能繼續,運算無法進行,更多是因為調用者的原因導致的而或者引發了內部狀態的改變導致的。
那麼這種問題一般不處理,直接編譯通過,在運行時,讓調用者調用時的程式強制停止,讓調用者對代碼進行修正。 所以自定義異常時,要麼繼承Exception。要麼繼承RuntimeException。
throws 和throw的區別。 1,throws使用在函數上。
throw使用在函數內。
2,throws拋出的是異常類,可以拋出多個,用逗號隔開。
throw拋出的是異常對象。
異常處理的捕捉形式:
這是可以對異常進行針對性處理的方式。 具體格式是: try{
//需要被檢測異常的代碼。
}
catch(異常類 變數)//該變數用於接收發生的異常對象
{
//處理異常的代碼。
}
finally
{
//一定會被執行的代碼。
}
異常的註意事項:
1,子類在覆蓋父類方法時,父類的方法如果拋出了異常,那麼子類的方法只能拋出父類的異常或者該異常的子類。 2,如果父類拋出多個異常,那麼子類只能拋出父類異常的子集。 簡單說:子類覆蓋父類只能拋出父類的異常或者子類或者子集。 註意:如果父類的方法沒有拋出異常,那麼子類覆蓋時絕對不能拋,就只能try .