我有一個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