我在 MSDN 中四处寻找,发现这篇文章有一个有趣的建议:不要让公共成员根据某些选项抛出或不抛出异常。
例如:
Uri ParseUri(string uriValue, bool throwOnError)
现在我当然可以看到,在 99% 的情况下,这将是可怕的,但它的偶尔使用是否合理?
我见过的一种情况是在访问数据库或配置文件中的数据时使用“AllowEmpty”参数。例如:
object LoadConfigSetting(string key, bool allowEmpty);
在这种情况下,替代方法是返回 null。但是随后调用代码将充满空引用检查。(如果您愿意,该方法还将排除实际允许 null 作为特定可配置值的能力)。
你怎么认为?为什么这会是个大问题?