【发布时间】:2011-07-01 09:49:55
【问题描述】:
我很好奇,一旦您抛出 System.ComponentModel.InvalidEnumArgumentException,您将如何维护您的代码。
基本上我有一个这样的 switch 语句:
switch (enumValue)
{
case MyEnum.Value1:
break;
case MyEnum.Value2:
break;
default:
throw new InvalidEnumArgumentException();
}
如果我决定将来为MyEnum 添加更多值,例如Value3 和Value4,该怎么办?这意味着我最终会抛出一个误导性的异常。我将如何防止这种情况发生?
我应该在投掷前使用反射吗?在这种情况下我应该抛出什么异常?我正在寻找建议。
几分钟前我刚刚发现了这个异常,所以我可能是在错误的上下文中查看这个异常。不支持某个枚举参数时是否会抛出此异常(在这种情况下,将不支持 Value3 和 Value4)?
【问题讨论】:
标签: c# maintainability