例外によるエラーコードの置き換え

メソッドがエラーコードを返すため、正常系と異常系が分かりづらい場合は「例外によるエラーコードの置き換え」を検討します。
 
たとえば「面積を取得する」メソッドが以下のように定義されていたとします。
 
        // 面積を取得します
        private int GetArea(int width, int height)
        {
            // 幅または高さが0以下の場合
            if (width <= 0 || height <= 0)
            {
                return 0;
            }

            return width * height;
        }
 
どうやら幅または高さに0以下を指定した場合は、エラーコードである「0」を返しているようですが、これが正常値なのか異常値なのか判断に迷うところですよね?
 
「幅または高さに0以下が指定された場合は異常」を明確にするため、「例外によるエラーコードの置き換え」を行います。
 
        // 面積を取得します
        private int GetArea(int width, int height)
        {
            // 幅または高さが0以下の場合
            if (width <= 0 || height <= 0)
            {
                throw new ArgumentException();
            }

            return width * height;
        }
 
呼び出し元で例外を処理する必要はありますが、正常系と異常系を切り分けることができました。

ADVERTISING

駅チカ!ホテル検索
全国の駅や目的地近くの宿泊施設を検索し予約することができます。最寄駅沿線からもホテルを検索できるので、アクセスのよいホテルを予約することが可能です。
  1. コメントはまだありません。

  1. トラックバックはまだありません。