サンによると:
Error は Throwable のサブクラスであり、適切なアプリケーションがキャッチしようと すべきではない重大な問題を示します。
キャッチされる可能性のあるエラーがあり、アプリケーションが続行される可能性があるため、この推奨事項には同意しません (ライブをスローしたError
スレッドを放置するという意味ではありません。そのスレッドはデッドのままです。残りのアプリケーションは存続します)。このようなエラーは OutOfMemory です。
これを正しいと考えてください (ここで私が間違っていると思われる場合は、引数をここに記載してください) アプリケーション内に何らかの監視コードを実装しようとしているかどうか疑問に思っていました。
具体的な例を挙げると、既存のアプリケーション内に、ログからさまざまなエラーを検出し (例は OOM など)、状況が悪化した場合に JVM を再起動できるように何らかのヘルス統計を作成する小さなクラスを配置することを考えています。
たとえば、検出された OutOfMemoryError が多すぎる場合は、JVM を再起動します。また、多すぎると、ある種のしきい値になる可能性があります。正直なところ、このしきい値をどのように計算するのかわかりません。おそらく、他のエラーと似たようなものです。
私はそのようなメカニズムが有用であると思っていましたか?同様のことをしたことがありますか?はいの場合、アドバイスやサンプルコードはありますか? それとも、私は間違った道を進んでいて、これを別の方法で考えるべきですか?