Как вы поддерживаете код с помощью InvalidEnumArgumentException?

Мне любопытно, как бы вы поддерживали свой код после того, как выбросили System.ComponentModel.InvalidEnumArgumentException .

В основном у меня есть такой оператор переключения:

switch (enumValue)
{
    case MyEnum.Value1:
        break;

    case MyEnum.Value2:
        break;

    default:
        throw new InvalidEnumArgumentException();
}

Что, если в будущем я решу добавить в MyEnum дополнительные значения, например Value3 и Value4 ? Это означало бы, что в конечном итоге я выдал бы вводящее в заблуждение исключение. Как мне это предотвратить?

Следует ли использовать отражение перед бросанием? Какое исключение я должен выбросить в этом случае? Я ищу предложения.


Я обнаружил это исключение пару минут назад, так что, возможно, я смотрю на него в неправильном контексте. Выдается ли это исключение, когда не поддерживается определенный аргумент перечисления (в этом случае Value3 и Value4 не поддерживаются)?

7
задан Marlon 1 July 2011 в 09:49
поделиться