ホームページ  >  記事  >  Java  >  項目 パラメータの妥当性チェック

項目 パラメータの妥当性チェック

WBOY
WBOYオリジナル
2024-08-30 06:38:32313ブラウズ

Item  Verifique a validade dos parâmetros

章: メソッド設計

  • 焦点: メソッド設計における使いやすさ、堅牢性、柔軟性。
  • 対象範囲: パラメーターと戻り値の処理、メソッド署名の設計、ドキュメント。

項目 49: パラメーターの有効性の確認

- パラメータの制限:
メソッドとコンストラクターには通常、パラメーター値 (負でないインデックス、null でない参照など) に関する制限があります。
これらの制約は文書化され、メソッドの開始時にチェックされる必要があります。

- 検証の重要性:
メソッド内の予期せぬ失敗や不正な動作を回避するために、できるだけ早くエラーを検出してください。
パラメータをチェックしないメソッドは、デバッグが困難なクラッシュを引き起こす可能性があります。

- 例外ドキュメント:
@throws Javadoc タグを使用して、制約違反の場合にスローされる例外を文書化します。
一般的な例外: IllegalArgumentException、IndexOutOfBoundsException、NullPointerException.

パラメータチェック例:

public static int mod(int x, int y) {
    if (y <= 0) {
        throw new IllegalArgumentException("Divisor deve ser positivo.");
    }
    return x % 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) は、オブジェクトが相互に比較できることを前提としています。検証は並べ替えプロセス中に行われます。

- 例外の翻訳:
暗黙的なチェックで間違った例外がスローされる場合は、「例外変換」を使用して正しい例外をスローします。

- 制限の柔軟性:
メソッドはできる限り一般的になるように設計し、必要最小限の制限を課す必要があります。

- 結論:
メソッドとコンストラクターのパラメーターの有効性チェックを文書化して実装します。今後のエラーを回避し、デバッグを容易にするためには、練習が不可欠です。

以上が項目 パラメータの妥当性チェックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。