私はいくつかのクライアント/サーバー ソフトウェアを作成していますが、次の設計上の問題に直面しています。通常、私は VERIFY マクロを非常に寛大に使用します。ユーザーのマシンに何か問題がある場合、ソフトウェアが失敗し、エラーをログに記録して修正できるようにしたいと考えています。私はどんな種類のエラーも無視するのが好きではありませんでした。
しかし、私は今サーバーを書いています。サーバーが停止した場合、多くのクライアントがダウンするため、サーバーの停止はできるだけ少なくする必要があります。したがって、そうでなければ致命的な例外として扱ういくつかの条件を扱う方法がわかりません。
たとえば、ログインしていないユーザーからネットワーク パケットを受信したとします。これは起こるべきではありませんが、「不可能な」エラーが時々発生することを十分に経験しています。したがって、これらのケースで致命的なエラーが発生した場合、サーバーは最終的にクラッシュすることは間違いありません。一方、ログに記録してエラーを無視して続行することもできますが、この方法では一部のバグが検出されない可能性があります。
このような状況であなたはどうしますか?