UncaughtExceptionHandler не вызывается
У меня проблемы с использованием 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 ответ
Решение
Кажется, что вы должны порождать его с отдельным потоком:
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()
}