これは、別の質問として尋ねることをお勧めした列挙型の未処理のケースに関する他の質問の別のケースです。
SomeEnum
次のように処理するswitchステートメントがあるとします。
enum SomeEnum
{
One,
Two
}
void someFunc()
{
SomeEnum value = someOtherFunc();
switch(value)
{
case One:
... break;
case Two:
... break;
default:
throw new ??????Exception("Unhandled value: " + value.ToString());
}
}
ご覧のとおり、可能なすべての列挙値を処理しますが、新しいメンバーが追加された場合に備えてデフォルトで例外をスローし続け、処理の欠落を認識していることを確認します。
私の質問は、指定されたコードパスが処理/実装されていない、またはアクセスされるべきではないことを通知したい場合の正しい例外は何ですか?以前は使用しNotImplementedException
ていましたが、適切ではないようです。次の候補はですInvalidOperationException
が、その用語は正しく聞こえません。正しいものとその理由は何ですか?