首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 異常捕獲匹配規則:繼承層級與捕獲順序

     編輯:Java 相關知識

匹配機制

  • 異常拋出後,catch 子句按宣告順序搜尋「最近匹配」。
  • 子類異常可被父類 catch 捕獲(多型)。

範例

try { throw new Sneeze(); }
catch (Sneeze s) { ... }      // 精確匹配,優先執行
catch (Annoyance a) { ... }   // 父類匹配,若無上一句則執行

順序陷阱

若父類 catch 置於子類之前,編譯錯誤「unreachable catch clause」,因子類永無機會匹配。

// 錯誤順序
catch (Annoyance a) { ... }
catch (Sneeze s) { ... } // 編譯錯誤

實務建議

由具體到通用排列 catch;捕獲基類可統一處理整個異常家族,新增子異常不影響客戶代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved