У меня есть ScheduledThreadPoolExecutor, который, кажется, есть Исключения. Я хочу, чтобы служба-исполнитель уведомила меня, если отправленное Runnable вызывает исключение.
Например, мне бы хотелось, чтобы код ниже, по крайней мере, напечатал IndexArrayOutOfBoundsException stackTrace
threadPool.scheduleAtFixedRate(
new Runnable() {
public void run() {
int[] array = new array[0];
array[42] = 5;
}
},
1000,
1500L,
TimeUnit.MILLISECONDS);
Как побочный вопрос. Есть ли способ написать общий блок catch try для ScheduledThreadPoolExecutor?
//////////КОНЕЦ ОРИГИНАЛЬНОГО ВОПРОСА //////////////
Как было предложено, следующий Decorator хорошо работает.
public class CatcherTask implements Runnable{
Runnable runMe;
public CatcherTask(Runnable runMe) {
this.runMe = runMe;
}
public void run() {
try {
runMe.run();
} catch (Exception ex){
ex.printStackTrace();
}
}
}