switch (number)
{
case 1: return DoOne();
case 2: return DoTwo();
case 3: return DoThree();
case 4: return DoFour();
default:
throw new ???Exception("Unexpected number encountered.");
}
この質問のために、と仮定してください:
number
は、それはnumber
がすべきことを不変クラスであるクラスで民間分野であります常に1と4の間にある。他のすべては、このクラスのバグを示します。つまり、例外がトリガされた場合、それはではない呼び出し元の障害ですが、常にクラスの作成者です。
この場合、スローする正しい例外は何ですか?
例外処理自体は[フレームワーク設計ガイドライン](http://www.amazon.co.uk/Framework-Design-Guidelines-Conventions-Libraries/dp/0321246756)にはありません。さもなければ、この答えは非常に意味があります。 – Timwi
@ティムウィー:振り返ってみると、私は同意します。彼らはなぜあなたがExceptionを抽象クラスにしなかったのか疑問に思います。私は編集します。 –