Если у меня есть Java-программа, которая может выйти по разным причинам, например:
потому что главное окно, которое настроено на «выход при закрытии», было закрыто
потому что в коде есть какой-то System.exit (0)
потому что больше нет окон (и ни один из них не настроен на выход при закрытии), но все еще работает несколько потоков, тогда в одной точке работают только потоки демона, и, следовательно, программа завершается.
И у меня установлен крюк отключения (работает нормально).
Есть ли какой-нибудь способ узнать, что вызвало завершение работы Java-программы из моего обработчика завершения работы?
(обратите внимание, что я не спрашиваю, хорошая ли это идея или нет System.exit(...)
распространяться по кодовой базе: вопрос не в этом)
По сути, я хотел бы знать, заставляю ли я себя перехватывать каждую возможную точку выхода из JVM и добавлять туда информацию или есть метод, позволяющий это сделать.