跳轉到內容

異常

100% developed
來自華夏公益教科書,開放的書籍,開放的世界

導航 異常 主題:v  d  e )
主題:


在編譯時捕獲錯誤的最佳時機是在您嘗試執行程式之前。但是,並非所有錯誤都可以在編譯時檢測到。其餘問題必須在執行時透過某種形式來處理,這種形式允許錯誤的起源者將適當的資訊傳遞給接收者,接收者將知道如何正確處理該問題。

改進的錯誤恢復是增強程式碼健壯性的最有效方法之一。錯誤恢復是您編寫的每個程式的基本關注點,但在 Java 中尤其重要,因為 Java 的主要目標之一是為其他人建立程式元件。要建立健壯的系統,每個元件都必須健壯。透過使用異常提供一致的錯誤報告模型,Java 允許元件可靠地將問題傳達給客戶端程式碼。

程式碼執行流程

[編輯 | 編輯原始碼]

在 Java 中,有兩種主要的程式碼執行流程。

  • 正常的順序程式碼執行,程式按照預期執行。
  • 異常處理程式碼執行,主程式流程因錯誤或其他條件而中斷,這些錯誤或條件阻止了正常順序程式碼執行的繼續。
異常
異常是 Java 的錯誤處理方式。每當發生意外情況時,都會丟擲一個異常,並使用異常物件作為引數。這意味著正常的程式控制流停止,並開始搜尋 catch 塊。如果沒有在當前方法級別找到,則搜尋將繼續在呼叫者方法級別進行,直到找到匹配的 catch 塊。如果沒有找到,則異常將由 JVM 處理,通常會導致 Java 程式終止。
當找到一個 catch “匹配”塊時,將執行該塊,異常物件將作為引數傳遞給該塊。然後,正常的程式執行將在 catch 塊之後繼續。請參閱 Java 異常處理語法
異常物件
這是作為錯誤的引數“丟擲”並傳遞給 catch 塊的物件。異常物件封裝了有關錯誤位置及其性質的資訊。所有 Exception 物件必須繼承自 java.lang.Throwable。請參閱下面的 UML 圖
6.1Java 異常類


匹配規則
丟擲的異常物件可以被 catch 關鍵字捕獲,並指定異常物件的類或其超類。
命名約定
將 Exception 新增到所有異常類是一種很好的做法。異常的名稱應該有意義,並且應該代表問題。例如,CustomerNotFoundException 可能表示未找到客戶。



華夏公益教科書