Exception 一. 什麼是java裏的異常 二.java裏的異常的分類 三.java裏對異常的處理 四.Try catch finally 的處理機制

一. 什麼是java裏的異常

1.1定義

異常指的是在程序運行過程中發生的異常事件,通常是由外部問題(如硬件錯誤、輸入錯誤)所導致的。在Java等面向對象的編程語言中異常屬於對象(Exception)。

1.2 java裏運行時出現的錯誤

二.java裏的異常的分類

1.1異常的繼承實現關係


Throwable 代表是可拋出的.

Error:代表的是嚴重錯誤,這種錯誤程序員無法進行處理,例如操作系統崩潰,jvm出錯,動態鏈接庫失敗等(如OutOfMemory)。

Exception:代表的就是異常了。它下面很多派生類,其中它的派生類也分兩種,一種是RuntimeException(運行時異常),其他的都是非運行時異常(如ClassNotFoundException)。

RuntimeException:包括除數爲0,數組下標超界等。運行時異常的派生類有很多,其產生頻率較高.。它的派生類可以由程序處理或者拋給(throw) 給jvm處理。例如上面圖1.2的例子就是拋給了jvm處理,jvm把程序中斷執行,並把錯誤信息輸出到終端上。

非RuntimeExcption:這種異常屬於Excepion的派生類,但是不是RuntimeException的派生類,這種異常必須由程序員手動處理,否則不通過編譯。

ArithmeticExcpetion:算術異常,它是RuntimeException的派生類,所以程序員不手動處理也通過編譯,只不過出錯時會被jvm處理。


三.java裏對異常的處理

3.1對異常的處理try catch,捕獲異常

try catch 捕獲異常,在工作過程中也有叫“吃了異常”。

使用try catch後可以使可能出現異常的代碼塊,在出現時候進行處理(catch之後直接打log並且return上一層結果)。

getMessage():Exception類的方法之一,返回異常的原因,上面的 / by zero 就是這個方法輸出的。

printStackTrace():Exception類的方法之一,在屏幕輸出函數棧信息,也就是異常出現的地方(實現類Throwable的方法)。

可以見到f() 加了個條件判斷,如果參數b = 0,使用throw 直接手動拋出1個異常,讓調用它的函數處理。

g()調用f()函數,預見到f()可能有異常,但是也不想處理,使用throws 關鍵字告訴調用它的函數本函數有可能拋出這種異常。

h()調用g(),簡單g()定義的throws,用try catch在本函數進行處理。

四.Try catch finally 的處理機制

4.1try catch finally

4.1.1 爲什麼需要finally

catch都沒有捕獲到,最終會執行到finally進行處理(雙層保障)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章