如果服务没有运行则抛出异常应该是什么时候?

时间:2011-01-06 23:56:33

标签: exception exception-handling windows-services

如果您正在编写一段代码来检查Windows服务的可用性,并且理想情况下它应该是可用的(从监视/可用性角度来看),但事实并非如此,即使对于哪个会抛出异常?

由于

4 个答案:

答案 0 :(得分:0)

仅当您的方法依赖该服务才能正常返回时。

答案 1 :(得分:0)

并且只有当你有一些东西捕获该异常并且知道如何处理它时......

答案 2 :(得分:0)

您使用短语

  

理想情况它应该可用(从监控/可用性角度来看)

强烈建议所讨论的服务对于您正在编写的方法的功能并不重要。

如果是这样,则条件是生成警告事件而不是抛出异常的条件可能是适当的操作。

答案 3 :(得分:0)

非常强大的规则:当且仅当例程不能满足其记录的后置条件时,例程才应该抛出异常。但是,如何定义后置条件有一定的灵活性。定义后置条件的方式将决定例程是否应该抛出和异常。

如果某些问题条件是可预见的,则可以使用单独的方法:

  1. 事先确定某些事情是否可行
  2. 尝试做某事,并通过返回代码表明它是否有效
  3. 做一些期望它会起作用的东西,如果没有则抛出异常
如果例程的调用者在失败的情况下能够做的唯一事情是抛出异常,那么在例程中有一段代码来检查条件并抛出异常可能会更好,而不是需要这样的代码来在每个调用者中重复。另一方面,如果调用者准备处理错误(例如使用某种类型或重试或搜索其他策略),最好让例程返回错误代码而不是抛出异常。

< / p>