Java基礎篇---異常處理

1. Java異常類層次結構圖 

 

2. Throwable是所有異常類的父類。有兩個重要的子類:ExceptionError。    

    Error:是程序無法處理的錯誤。通常是指程序運行時JVM出現的錯誤,例如outofmemory(內存不足)。

               這是由於程序設計邏輯有問題,導致程序運行時,JVM本身出現了錯誤,所以是不可以被程序處理的。    

    Exception:是程序本身可以處理的異常。 例如空指針,算術運算錯誤,數組下標越界等等。

 

3. 常用Throwable的toString()方法打印異常信息。  

    toString()會調用getLocalizedMessage()方法,如果異常對象沒有override該方法,則父類Throwable中默認是調用getMessage()方法。

 

4. 異常處理方法:  

    try():用於捕獲異常。    

    catch(): 用於處理異常。    

    finally(): 無論是否捕獲或者處理異常,finally()中的方法始終會被執行。

    所以finally中常用來完成一些善後處理工作,例如文件資源或網絡資源的釋放等。    

    如果try()或者catch()中含有return語句,則finally()中的語句塊會在return之前被執行。如果finally中也有return語句,則finally中return的值會覆蓋掉try或catch中的return值

 

5. finally()語句塊不會被執行的三種情況:  

    a. 在執行finally語句塊的第一句時,發生了異常。    

        所以應該確保finally語句塊中不會發生異常。  

    b. 在執行finally語句塊之前,調用了System.exit(int),exit的參數是非零的,即程序是非正常退出。  

    c. 程序所在線程死亡。  

    對於以上三點,其實只需注意第一點,對於後面的兩點,程序都已經異常終止了,finally中的語句塊執不執行已經沒有意義了。

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