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 …