c# – 当一个未知值传递给switch语句时,我应该抛出什么类型的Exc
编辑1
更新以使枚举不是方法的参数… 题 使用switch语句中的枚举会出现这种类型的问题.在示例代码中,开发人员已考虑该程序当前使用的所有国家/地区,但如果将另一个国家/地区添加到Country枚举,则应抛出异常.我的问题是,应该抛出什么类型的异常? 示例代码: enum Country { UnitedStates,Mexico,} public string GetCallingCode(Guid countryId){ var country = GetCountry(countryId); switch (country) { case Country.UnitedStates: return "1"; break; case Country.Mexico: return "52"; break; default: // What to throw here break; } } 我看了看 > NotImplemented,未实现请求的方法或操作时引发的异常. 我的猜测是NotImplemented或Invalid Operation.我应该使用哪一个?有人有更好的选择(我知道滚动你自己总是一个选项) 解决方法
我会使用ArgumentException,因为agrument无效.
编辑:http://msdn.microsoft.com/en-us/library/system.argumentexception%28v=vs.71%29.aspx 还有InvalidEnumArgumentException,它可能更准确地描述问题,但是,我之前没有看到任何人使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |