処理できる例外のみをキャッチする必要があることを読みました。これにより、ベース例外クラス(この場合はC#)をキャッチするのは悪い考えです(他の理由に加えて)。現在、私はプロジェクトの一部であり、これまでのところ、キャッチされている基本例外以外は何も見ていません。そうするのは悪い習慣と見なされると述べましたが、応答は「このサービスは24時間365日実行する必要があるため、そうです」でした。
24時間年中無休で実行する必要のあるプログラムで例外を適切に処理する方法についての良い応答がなかったため、ここにいます。24時間実行する必要のある「重要な」プログラム/サービスの例外処理に対処する方法に関する情報/提案を見つけることができませんでした(この場合、サービスが1分間停止しても大丈夫かもしれません)または2つなので、重要ではありません)。私はそれがプログラムの正確な性質に依存することを理解しています。命にかかわる問題を引き起こす可能性のあるプログラムの要件は、オンラインゲームのログスキャナーとはまったく異なります。
2つの例:
1:イギリス鉄道の顧客向けの先行入力サービス。鉄道駅をオンラインで検索するときに使用されます。
2:線路、列車などのさまざまなセンサーから提供されるリアルタイム情報に基づいて、上記の鉄道の鉄道スイッチを自動的に制御するプログラム。
最初のプログラムが1、2分間停止しても、おそらく大きな問題は発生しませんが、後者は人的被害を引き起こす可能性があります。それぞれに対処する方法の提案?この問題に関する詳細情報と考えを見つけることができる場所へのポインター?
catch Exception
。それはあなたのプログラムが機能することを意味するものではありません。それは、失敗が実行を続けている間にアプリケーションの状態を破壊させることを意味します。クラッシュしたプログラムは悲惨なものになる可能性がありますが、無効な状態ではあるがアクションを実行しているプログラムは積極的に悲惨なものになる可能性があります。