我在 MSDN 上搜索,发现了 这篇文章,其中有一个有趣的建议:不要有公共成员可以基于某些选项抛出或不抛出异常。
例如:
Uri ParseUri(string uriValue, bool throwOnError)
当然,我可以看到在99%的情况下这是可怕的,但它的偶尔使用是否合理?
我见过一个案例,就是在访问数据库或配置文件中的数据时使用“AllowEmpty”参数。例如:
object LoadConfigSetting(string key, bool allowEmpty);
在这种情况下,另一种选择是返回null。但是,此时调用代码将会充斥着对null引用的检查。(如果你想使用null作为特定配置值,该方法也会排除此能力)。
你有什么想法?为什么这会成为一个大问题?