章: メソッド設計
項目 49: パラメーターの有効性のチェック
- パラメータの制限:
メソッドとコンストラクターには通常、パラメーター値に制限があります (負でないインデックス、null でない参照など)。
これらの制限は、メソッドの開始時に文書化して検証する必要があります。
- 検証の重要性:
メソッド内の予期せぬ失敗や不正な動作を避けるために、できるだけ早くエラーを検出してください。
パラメータをチェックしないメソッドは、デバッグが困難なクラッシュを引き起こす可能性があります。
- 例外ドキュメント:
@throws Javadoc タグを使用して、制約違反の場合にスローされる例外を文書化します。
一般的な例外: IllegalArgumentException、IndexOutOfBoundsException、NullPointerException.
パラメータチェック例:
public static int mod(int x, int y) { if (y- Objects.requireNonNull:
の使用法 Java 7 で導入され、オブジェクトの null 可能性をチェックするために使用されます。
検証後に渡された値を返します: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