我很好奇一旦你抛出一个你将如何维护你的代码System.ComponentModel.InvalidEnumArgumentException
.
基本上我有一个这样的 switch 语句:
switch (enumValue)
{
case MyEnum.Value1:
break;
case MyEnum.Value2:
break;
default:
throw new InvalidEnumArgumentException();
}
例如,如果我决定MyEnum
在未来添加更多值怎么办?Value3
Value4
添加更多的值怎么办?这意味着我最终会抛出一个误导性的异常。我将如何防止这种情况?
我应该在投掷前使用反射吗?在这种情况下我应该抛出什么异常?我正在寻找建议。
几分钟前我刚刚发现了这个异常,所以也许我在错误的上下文中看待这个。当某个枚举参数不受支持时(在这种情况下Value3
并且Value4
不支持),是否会引发此异常?