UncaughtExceptionHandler не вызывается - PullRequest
0 голосов
/ 26 сентября 2018

У меня проблемы с использованием UncaughtExceptionHandler в Groovy / Java.

class UncaughtExceptionLogger implements Thread.UncaughtExceptionHandler {

    @Override
    void uncaughtException(Thread t, Throwable e) {
        //TODO do some logging;
        println "test";
    }

main..groovy

def main(){
    def handler = new UncaughtExceptionLogger();
    Thread.defaultUncaughtExceptionHandler = handler
    String s; 
    s.charAt(10); // causes a NullPointerException but the exception handler is not called 
}

main();

Почему я ожидаю вызова обработчика исключений, когдаNullPointerException выбрасывается, однако этого не происходит.Что я делаю не так?

1 Ответ

0 голосов
/ 26 сентября 2018

Кажется, что вы должны порождать его с отдельным потоком:

class UncaughtExceptionLogger implements Thread.UncaughtExceptionHandler {
    @Override
    void uncaughtException(Thread t, Throwable e) {
        //TODO do some logging;
        println "test";
    }
}

def main(){
    Thread.defaultUncaughtExceptionHandler = new UncaughtExceptionLogger()
    String s;
    s.charAt(10); // causes a NullPointerException but the exception handler is not called
}

Thread.start {
  main()
}
...