章節:方法設計
第 49 項:檢查參數有效性
- 參數限制:
方法和建構子通常對參數值有限制(例如非負索引、非空引用)。
這些限制必須在方法開始時記錄並驗證。
- 驗證的重要性:
儘早偵測錯誤,以避免方法中出現意外故障或不正確行為。
不檢查參數的方法可能會導致難以調試的崩潰。
- 異常文件:
使用 @throws Javadoc 標記記錄違反約束時拋出的例外。
常見例外:IllegalArgumentException、IndexOutOfBoundsException、NullPointerException.
參數檢查範例:
public static int mod(int x, int y) { if (y- Objects.requireNonNull 的使用:
Java 7 中引入,用於檢查物件的可空性。
傳回驗證後通過的值:this.m = Objects.requireNonNull(m, "Parâmetro 'm' não pode ser nulo");- 範圍檢查 (Java 9):
checkFromIndexSize、checkFromToIndex 和 checkIndex 方法用於檢查清單和陣列中的索引。
彈性較差,主要用於集合。
**
assert x > 0 : "Valor de x deve ser positivo";
- 特殊情況:
建構者應始終檢查儲存參數的有效性以供以後使用。
對於成本高昂的檢查可以例外,其中檢查在計算過程中是隱式的。
- 隱式驗證範例:
Collections.sort(List) 假設物件是相互比較的。驗證發生在排序過程中。
- 異常翻譯:
當隱式檢查拋出錯誤的異常時,使用“異常翻譯”來拋出正確的異常。
- 限制的彈性:
方法應設計得盡可能通用,並施加盡可能少的限制。
- 結論:
記錄並實施方法和建構函數的參數有效性檢查。練習對於避免將來的錯誤和促進調試至關重要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3