例外によるエラーコードの置き換え
メソッドがエラーコードを返すため、正常系と異常系が分かりづらい場合は「例外によるエラーコードの置き換え」を検討します。
たとえば「面積を取得する」メソッドが以下のように定義されていたとします。
// 面積を取得します
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;
}
呼び出し元で例外を処理する必要はありますが、正常系と異常系を切り分けることができました。
コメントはまだありません。