线程池中的异常处理
- 论坛
- 线程池中的异常处理
10 浏览
线程池中的异常处理
我有一个ScheduledThreadPoolExecutor,似乎会吞掉异常。我希望执行器服务在提交的Runnable抛出异常时通知我。
例如,我希望下面的代码至少打印出IndexArrayOutOfBoundsException的堆栈跟踪:
threadPool.scheduleAtFixedRate( new Runnable() { public void run() { int[] array = new array[0]; array[42] = 5; } }, 1000, 1500L, TimeUnit.MILLISECONDS);
作为一个附加问题,有没有办法为ScheduledThreadPoolExecutor编写一个通用的try catch块?
//////////原问题的结束//////////////
如建议的,下面的装饰器效果很好。
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(); } } }