Выдает исключение, если служба не запущена, когда она должна быть? - PullRequest
1 голос
/ 07 января 2011

Если вы пишете фрагмент кода для проверки доступности службы Windows, и в идеале она должна быть доступна (с точки зрения мониторинга / доступности), но это не так, будет ли это классифицироваться как «исключительное» дажеза что выкинуть исключение для?

Спасибо

Ответы [ 4 ]

0 голосов
/ 10 января 2011

Очень строгое правило: процедура должна вызывать исключение тогда и только тогда, когда она не может соответствовать задокументированным постусловиям.Однако существует некоторая гибкость в определении постусловий.Способ определения постусловий будет определять, должна ли подпрограмма генерировать исключение.

Если определенные проблемные условия являются предсказуемыми, может быть полезно иметь отдельные методы для:

  1. Определение взаранее, может ли что-то сработать
  2. Попытка что-то сделать и указание с помощью кода возврата, сработало ли это
  3. Сделайте что-то с ожиданием того, что это сработает, и выведите исключение, если оно не
Если единственноеВ случае сбоя вызывающая процедура может создать исключение, поэтому лучше иметь один фрагмент кода внутри подпрограммы для проверки условия и выбросить исключение, чем требовать дублирования такого кода вкаждый звонящий.С другой стороны, если вызывающая сторона будет готова справиться с ошибкой (например, с помощью какой-либо стратегии типа «попытка повтора» или «поиск в другом месте»), было бы лучше, чтобы подпрограмма возвращала код ошибки, а не создавала исключение.
0 голосов
/ 07 января 2011

И только если у вас есть что-то, что поймает это исключение и знает, как с ним справиться ....

0 голосов
/ 07 января 2011

Ваше использование фразы

в идеале должно быть доступно (с точки зрения мониторинга / доступности)

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

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

0 голосов
/ 07 января 2011

Только если ваш метод полагается на эту службу для правильного возврата.

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