Мне любопытно, как бы вы поддерживали свой код после того, как выбросили System.ComponentModel.InvalidEnumArgumentException
.
В основном у меня есть такой оператор переключения:
switch (enumValue)
{
case MyEnum.Value1:
break;
case MyEnum.Value2:
break;
default:
throw new InvalidEnumArgumentException();
}
Что, если в будущем я решу добавить в MyEnum
дополнительные значения, например Value3
и Value4
? Это означало бы, что в конечном итоге я выдал бы вводящее в заблуждение исключение. Как мне это предотвратить?
Следует ли использовать отражение перед бросанием? Какое исключение я должен выбросить в этом случае? Я ищу предложения.
Я обнаружил это исключение пару минут назад, так что, возможно, я смотрю на него в неправильном контексте. Выдается ли это исключение, когда не поддерживается определенный аргумент перечисления (в этом случае Value3
и Value4
не поддерживаются)?