我已经读到我们应该只捕获可以处理的异常,这使得捕获基本异常类(在这种情况下为C#)不是一个好主意(除其他原因之外)。我目前是一个项目的一部分,到目前为止,除了捕获到的基本异常之外,我什么都没有看到。我提到这样做是不明智的做法,但是响应是“此服务需要24/7运行,因此是这样。”
由于我对如何正确处理需要24/7运行的程序中的异常没有很好的反应,所以我现在在这里。我没有找到有关如何处理需要全天候运行的“关键”程序/服务中的异常处理的任何信息/建议(在这种情况下,我认为如果该服务关闭一分钟可能会没事的或两个,所以甚至都不重要)。我了解这取决于程序的确切性质。与在线游戏的日志扫描器相比,可能导致生命危险的程序的要求有很大不同。
两个例子:
1:为英国铁路客户提供的提前输入服务,当他们在线搜索火车站时使用。
2:一个程序,该程序基于从轨道,火车等中的各种传感器提供的实时信息,自动控制上述铁路的铁路开关。
如果第一个程序崩溃了一到两分钟,它可能不会引起重大问题,而后者可能会导致人员伤亡。关于如何处理每个建议?指向哪里可以找到有关此问题的更多信息和想法?
catch Exception
。这并不意味着您的程序可以运行,而是意味着故障会使应用程序状态在继续执行时遭到破坏,这是一个更加危险的地方。崩溃的程序可能是灾难性的,但一个程序,是一个无效的状态,但仍然执行操作可积极灾难性的。