JAVA API 之不得不說的異常機制

Day04

 1  異常 Exception

             異常會終止程序的運行 

            try{

                          }catch{

                                             }finally{

                                                                     }

1 )try不能單獨寫  後面 要跟 catch{} 或者finally  也可以同時接 finally  catch{}

2 )try 中可以放多個語句  如果一個語句發生了異常 不再執行後面的語句  接着執行catch{}  finally{}  以及程序 後面的異常

3 )不管有沒有異常都會去執行的塊 不管方法有沒有結束 finally  都會是最後執行的

4)如果沒有異常 就不會走try

5)  可以有多個catch()  出現異常後  不再執行try後面的語句  如果異常發生而沒有 catch () 或者catch( )沒有匹配上就不會執行後面的程序了

6)無論 try 中是否發生異常 是否有return  是否在catch()中得到處理 finally都會執行一般最後執行

7) catch{}應該有相應的異常類型  可以有多個catch()  (從小到大來排列的)先捕獲小的再捕獲大的 執行時 只匹配第一個

8)try catch finally 可以套用  可以嵌套在另一個 try  catch() finally 任意部分中  可重新拋出異常

9) JDK1.7 增加的新特性

在異常捕獲機制中支持自動關閉操作 主要解決異常捕獲機制中對io流的自動關閉

try(需要關閉流的聲明){

}catch(){

10) 區分final finally finalize()

final 常量修飾符  finally  異常捕獲裏要執行的   finalize () gc 自動調用的  一般需要重寫該方法  object內中的

 

2   異常的分類

                                                

    經常出現的錯誤(RuntimeExption  或者其子類)不用catch 由系統自動處理 (用戶不必對其處理)程序會中斷

    檢查異常必須要處理 要麼拋出去 要麼catch() 得

     自定義的異常用來說明業務邏輯的錯誤

 

3  Throw 和 Throws

      throw  用於拋出異常  手動拋出異常 (可以是系統定義的異常類 也可以是自定義的異常)除了RuntimeException()及其子類異常不用 聲明有異常拋出外,其他的拋出的異常一定要聲明有異常拋出

      throw 一旦被執行 它後面的語句就不再執行了 而它所在的方法也不會再返回有意義的值了可以有多條但最後執行一條 一般放在判斷語句中

       一般自己拋出的異常可以自己捕獲做一些前期的處理 catch (throw e); 可以再拋異常那個方法調用此方法就由那個方法來處理

    throws  用於聲明有異常拋出   

      重寫方法需要拋出與原方法所拋出異常類型一致異常或者不拋出異常  如果父類有多個異常 則可以拋出父類方法異常類的一個子集

      可以拋出父類方法拋出的異常的子類異常(不能拋父類異常的父類型不能比他大)

      子類不能拋出新的異常,和比父類異常還大的異常

4)e 中的常用的方法 printStactTrice ()  getMessage();


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