1. 程式人生 > >第十二章 異常處理

第十二章 異常處理

java程序 兩種 定義 拋出異常 種類型 java程序員 不能 java類 cat

異常處理理論上由兩種模型:1、終止模型:錯誤非常關鍵,一旦發生,程序不能在繼續執行下去。無法挽回了。

             2、恢復模型:異常處理的工作是恢復程序的工作。然後嘗試重新調用出錯的方法。(不推薦,增加了過多的耦合,不容易維護)

創建自定義異常

  必須從已有的異常類繼承。

重新拋出異常:

try{
  m();
} catch(Exception e){
  throw (Exception)e.fillInStackTrace();//m()中的異常發生地將被這邊新的異常發生地取代,異常棧軌跡中將不會存在捕獲的這個異常的棧軌跡(拋出的是相同異常的條件下)
}

  在捕獲異常後拋出另一種異常時,捕獲的的異常的棧軌跡將會被取代,與fillInStackTrace()效果類似。

異常鏈:常常會想要在捕獲一個異常後拋出另一個異常,並且希望把原始異常的信息保存下來,這被稱為異常鏈。只有三種異常支持異常鏈(通過構造器的方式):Error、Exception和RuntimeException。其他的異常類通過initCause()方法而不是構造器(在異常的後面插入)。

Java標準異常

  Throwable這個Java類被用來表示任何可以作為異常被拋出的類。Throwable對象可以被分為兩種類型(指從Throwable繼承而得到的類型):Error用來表示編譯時和系統錯誤;Exception是可以被拋出的基本類型,在Java類庫、用戶方法以及運行時故障中都可能拋出Exception型異常。所以Java程序員關心的基本類型通常時Exception。

  

第十二章 異常處理