Отловить внезапное завершение программы

118
24 ноября 2020, 00:00

Мне необходимо отловить снятие программы с выполнения как это сделать? Событие windowDeactivated срабатывает не только в случае непредвиденного заверешния программы, но и в случае корректного завершения программы. Можно как-то отловить код, с которым завершилась программа? Допустим мне нужен

Process finished with exit code 1
Answer 1

Есть возможность повесить ShutdownHook, он сработает при штатном завершении, например приctrl+c в консоли:

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() { 
        System.out.println("hook");
    }
});

но в случае с каким нибудь kill -9 и он не придет.

Answer 2

Вроде бы очевидно, если программа завершилась, то она уже ничего логировать не может.

READ ALSO
Как сделать так, чтобы программа решала математическое выражение, вводимое пользователем? [дубликат]

Как сделать так, чтобы программа решала математическое выражение, вводимое пользователем? [дубликат]

допустим у пользователь вводит "cosx/sinx+1", x нам известен (к примеру x = 5) Суть в том, что нельзя просто привести это всё к строке вида Mathcos(a)/Math

103
Переопределение методов add листа

Переопределение методов add листа

Не могу переопределить методы addВернее могу, но они не работают так, как нужно

78
Redirect с сохранением header

Redirect с сохранением header

Проблема в том, что я получаю 500 ошибкуА если я делаю тоже самое, но id передаю через куки, то всё нормально

100
Java Где хранится volatile переменная

Java Где хранится volatile переменная

Всегда думал что volatile переменные в Java хранятся в MetaSpace, недавно на собеседовании мне сказали что это неверноТак вот вопрос: где они хранятся?

105