Обработка недопустимых значений в web.config - PullRequest
3 голосов
/ 26 октября 2009

Если запись в файле web.config является недопустимым значением, следует ли мне выдавать исключение или установить его в значение по умолчанию при чтении из приложения.

Например:

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

Если мое приложение читает это и хочет сохранить его в логическом свойстве, я должен выбросить исключение или установить для него значение по умолчанию "true"?

Ответы [ 4 ]

6 голосов
/ 26 октября 2009

Правильное конфигурирование настолько важно, что я бы бросил Exception, если он совсем неумелый ... лучше определить ошибку конфигурации, как только она будет сделана.

  • Сценарий "а": разработчик пытается перенастроить сайт; получает YSOD, читает сообщение об ошибке на локальном компьютере, исправляет ошибку, развертывает изменение
  • Сценарий "b": разработчик пытается перенастроить сайт; все выглядит хорошо, развертываете изменения, кто-то замечает «день 0» в производстве, некоторые незначительные ворчания, это исправляется смущенным разработчиком
  • Сценарий "c": разработчик пытается перенастроить сайт; все выглядит хорошо, вносит изменения, разница невелика, и никто не замечает, пока счета на конец года не выглядят странно; это идет перед советом директоров / директоров ...

Я хочу сценарий "а" каждый раз ...

3 голосов
/ 26 октября 2009

Я бы бросил исключение. Лучше не запускать вообще, чем запускать с конфигурацией, отличной от предполагаемой. Вместо этого использование значения по умолчанию может иметь очень серьезные последствия с течением времени ... в то время как отказ от запуска (с явным сообщением об ошибке) решит проблему быстро. Очень трудно игнорировать приложение, которое вообще не запускается.

1 голос
/ 26 октября 2009

Зависит;)

Это может произойти? Если это так, то перехватите ошибку, зарегистрируйте ее и установите значение по умолчанию.

Если это маловероятно, тогда выбросьте исключение - оно показывает, что что-то серьезное пошло не так.

Учитывая, что это web.config - я бы пошел с последним.

0 голосов
/ 26 октября 2009

Если бы я делал это, я бы просто сбросил его до значения по умолчанию, хотя это могло бы привести к некоторым плохим скрытым ошибкам в конце строки, если код разбора или сохранения прервался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...