Извините за запутанное название, то, что я пытаюсь отслеживать количество раз, когда метод, который выполняется асинхронно, выдает исключение, а также получение результатов, успешно выполненных в переменной класса. Я думаю, что моя реализация довольно неактивна, будет ли здесь более подходящий список CompletingFutures, чем CompletableFuture of List?Java 8 - Как отслеживать количество исключений, вызванных в параллельном потоке async, используя CompletableFuture
public class testClass {
private List<Integer> resultNumbers;
public void testMethod() {
int exceptions = 0;
try {
methodWithFuture();
catch (InterruptedException | ExecutionException e) {
exceptions++;
}
System.out.println("Number of times the addNumber method threw an exception=" + exceptions);
}
public void methodWithFuture() throws InterruptedException, ExecutionException {
List<Integer> numbersList = Arrays.asList(new Integer[] { 1, 2, 3 })
CompletableFuture<List<Integer>> futuresList = CompletableFuture.supplyAsync(() ->
numbersList.parallelStream().map(number -> addNumber(number))).collect(Collectors.toList()),
new ForkJoinPool(3));
resultNumbers.addAll(futuresList.get());
}
}
Так, глядя на ваш текущий код, который вы только когда-нибудь, чтобы получить 1 исключение в большинстве – Ash