我有一个ScheduledThreadPoolExecutor,它似乎在吃异常。如果提交的Runnable引发异常,我希望执行程序服务通知我。ThreadPools中的异常处理
例如,我想下面的代码起码打印IndexArrayOutOfBoundsException的堆栈跟踪
threadPool.scheduleAtFixedRate(
new Runnable() {
public void run() {
int[] array = new array[0];
array[42] = 5;
}
},
1000,
1500L,
TimeUnit.MILLISECONDS);
作为一个方面的问题。有没有办法为ScheduledThreadPoolExecutor编写一个通用的try catch块?原来问题的
////////// END //////////////
由于提出了下列装饰效果很好。
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();
}
}
}
优秀的问题。我想知道为什么只有少数人遇到这种情况。 – whiskeysierra 2010-10-06 19:06:06
另请参阅http://stackoverflow.com/questions/1687977/how-to-properly-catch-runtimeexceptions-from-executors – Raedwald 2014-04-29 15:57:33