とを使用ExecutorService
して並列処理を行っています。の呼び出し時に の例外をキャッチできますが、すべてのcallableによってスローされたすべての例外をキャッチしてから、次のような巨大な複合例外をスローする方法は次のとおりです。Future
Callable
Callable
Future#get
ExecutorService service = Executors.newFixedThreadPool(5);
List<Future<Void>> futures = new ArrayList<Future<Void>>();
futures.add(service.submit(new TaskA());
futures.add(service.submit(new TaskB());
for (Future<Void> future : futures) {
try {
future.get();
} catch (Exception e) {
// ???
}
}
// throw the big exception here
service.shutdown();