Trong .net lớp AggregateException cho phép bạn ném một ngoại lệ có chứa nhiều ngoại lệ.Tương đương java của AggregateException từ .net là gì?
Ví dụ: bạn sẽ muốn ném một ngoại lệ AggregateException nếu bạn chạy nhiều tác vụ song song và một số trong số chúng không thành công với ngoại lệ.
Java có lớp tương đương không?
Các trường hợp cụ thể tôi muốn sử dụng nó trong:
public static void runMultipleThenJoin(Runnable... jobs) {
final List<Exception> errors = new Vector<Exception>();
try {
//create exception-handling thread jobs for each job
List<Thread> threads = new ArrayList<Thread>();
for (final Runnable job : jobs)
threads.add(new Thread(new Runnable() {public void run() {
try {
job.run();
} catch (Exception ex) {
errors.add(ex);
}
}}));
//start all
for (Thread t : threads)
t.start();
//join all
for (Thread t : threads)
t.join();
} catch (InterruptedException ex) {
//no way to recover from this situation
throw new RuntimeException(ex);
}
if (errors.size() > 0)
throw new AggregateException(errors);
}
Tôi không biết của ai. Tuy nhiên, tôi chưa bao giờ tìm kiếm một. – Powerlord