我正在编写一些客户端/服务器软件,并且面临以下设计问题。通常,我非常随意地使用 VERIFY 宏 - 如果用户的机器出现问题,我希望软件失败并记录错误以便修复。我从不喜欢忽略任何类型的错误。
但是,我现在正在编写一个服务器。如果服务器死了,很多客户端就会宕机,所以服务器应该尽可能少地死掉。因此,我不知道如何处理一些我认为是致命异常的情况。
例如,我从一个没有登录的用户那里得到一个网络数据包。即使它不应该发生,我有足够的经验知道“不可能”的错误确实会不时发生。所以我很确定如果我在这些情况下犯了致命错误,服务器最终会崩溃。另一方面,我可以记录并忽略错误并继续,但我担心一些错误可能会以这种方式未被检测到。
在这种情况下你会怎么做?