次のようなさまざまな理由で終了できるJavaプログラムがある場合:
「閉じるときに終了」に設定されているメインウィンドウが閉じられたため
コードにSystem.exit(0)が含まれているため
これ以上ウィンドウがないため(そして、閉じるときに終了するように設定されたものはありません)、まだいくつかのスレッドが実行されているため、ある時点ではデーモンスレッドのみが実行されているため、プログラムは終了します。
そして、シャットダウンフックがインストールされています(これは正常に実行されています)。
シャットダウンフックから、Javaプログラムが終了した原因を知る方法はありますか?
(私はそれが良い考えであるかどうか、またはコードベース全体に広がっていないかどうかを尋ねていないことに注意してくださいSystem.exit(...)
:これはこの質問が何であるかではありません)
基本的に、考えられるすべてのJVM出口ポイントをインターセプトしてそこに情報を追加する必要があるのか、それともそれを可能にするメソッドがすでに存在するのかを知りたいと思います。