处理web.config中的无效值

时间:2009-10-25 21:36:50

标签: c# web-config

如果web.config文件中的条目是无效值,我应该抛出异常,或者在我从应用程序中读取它时将其设置为默认值。

例如:

 <add key="enablePasswordReset" value="Invalid">

如果我的应用程序读取此内容并希望将其存储在Boolean属性中,是应该抛出异常还是将其设置为默认值“true”?

4 个答案:

答案 0 :(得分:6)

正确配置是非常重要的,如果它完全狡猾,我会抛出Exception ...更好地发现配置错误。

  • 场景“a”:开发人员尝试重新配置网站;获取YSOD,在其本地计算机上读取错误消息,修复错误,部署更改
  • 场景“b”:开发人员尝试重新配置网站;它看起来不错,部署了变化,有人注意到生产中的“第0天”,一些轻微的抱怨,它被一个尴尬的开发者修复
  • 场景“c”:开发人员尝试重新配置网站;看起来不错,部署变更,差异是微妙的,没有人注意到年底账户看起来很奇怪;它走在董事会/董事面前......

每次我都希望场景“a”......

答案 1 :(得分:3)

我会抛出异常。最好不要运行,而不是使用非预期配置运行。使用默认值可能会随着时间的推移而产生非常严重的后果......而无法启动(带有明显的错误消息)将很快解决问题。忽略一个根本没有开始的应用程序是非常困难的。

答案 2 :(得分:1)

取决于;)

是否有可能发生的事情?如果是,则捕获错误,记录并设置默认值。

如果不太可能,那么抛出异常 - 它表明出现了严重问题。

鉴于它是web.config - 我会选择后者。

答案 3 :(得分:0)

如果我这样做,我只会将其重置为默认值,但如果解析或保存代码中断,这可能会导致一些错误的隐藏错误。