12
处理来自Java ExecutorService任务的异常
我正在尝试使用Java的ThreadPoolExecutor类以固定数量的线程运行大量繁重的任务。每个任务都有很多地方,在这些地方可能会由于异常而失败。 我已经继承了子类,ThreadPoolExecutor并且重写了afterExecute应该提供运行任务时遇到的任何未捕获异常的方法。但是,我似乎无法使其正常工作。 例如: public class ThreadPoolErrors extends ThreadPoolExecutor { public ThreadPoolErrors() { super( 1, // core threads 1, // max threads 1, // timeout TimeUnit.MINUTES, // timeout units new LinkedBlockingQueue<Runnable>() // work queue ); } protected void afterExecute(Runnable r, Throwable t) { super.afterExecute(r, t); if(t != null) { System.out.println("Got an …