ほとんどの場合、チェックされていないものであっても、Java で例外をキャッチすることができます。ただし、それについて何かを行うことが必ずしも可能であるとは限りません (たとえば、メモリ不足)。
他のケースでは、私が解決しようとしている問題は設計原則の問題です。私は、たとえそれが間に合うように検出されたとしても、例外的な状況をいつあきらめるべきかを示す設計原則または一連のルールを設定しようとしています。目的は、アプリケーションをできるだけクラッシュさせないようにすることです。
誰かがすでにブレインストーミングを行い、これについて話し合っていますか? 特定の一般的なケースと考えられる解決策、または経験則を探しています。
アップデート
これまでの提案:
- データの一貫性が損なわれる可能性がある場合は、実行を停止します
- データを削除できる場合は実行を停止します
- 何もできない場合は実行を停止してください (メモリ不足...)
主要なサービスが利用できない場合、または利用できなくなり、再起動できない場合は、実行を停止します
メソッド/サービスは、安定した状態からその義務を実行できるかどうかを確認する必要があります。そうでない場合は、ユーザーに通知 (ログ) して何もしない必要があります。
- アプリケーションを停止する必要がある場合は、できるだけ適切に機能を低下させます
- db トランザクションでロールバックを使用する
- カスタマイズされた例外を使用して、ハンドラーによって状況を解決する方法に関するヒントを提供できます
- できるだけ多くの関連情報を記録する
- 開発者に通知する
状態とデータの一貫性をできる限り維持する
クイックフィックスは有害な場合があります。デバッグ時に、アプリケーションをクラッシュさせ、原因を詳細に分析することをお勧めします