Обработка исключений поставщика Java 8 с CompletableFuture

Рассмотрим следующий код -

public class TestCompletableFuture {

    BiConsumer<Integer, Throwable> biConsumer = (x,y) -> {
        System.out.println(x);
        System.out.println(y);
    };

    public static void main(String args[]) {
        TestCompletableFuture testF = new TestCompletableFuture();
        testF.start();      
    }

    public void start() {
        Supplier<Integer> numberSupplier = new Supplier<Integer>() {
            @Override
            public Integer get() {
                return SupplyNumbers.sendNumbers();                     
            }
        };
        CompletableFuture<Integer> testFuture = CompletableFuture.supplyAsync(numberSupplier).whenComplete(biConsumer);         
    }       
}

class SupplyNumbers {
    public static Integer sendNumbers(){
        return 25; // just for working sake its not  correct.
    }
}

Вышеуказанная вещь работает отлично. тем не мениеsendNumbers также может выдать проверенное исключение в моем случае, например:

class SupplyNumbers {
    public static Integer sendNumbers() throws Exception {
        return 25; // just for working sake its not  correct.
    }
}

Теперь я хочу обработать это исключение какy в моемbiConsumer, Это поможет мне в обработке результата, а также исключения (если есть) внутри одной функции (biConsumer).

Есть идеи? Могу ли я использоватьCompletableFuture.exceptionally(fn) здесь или что-нибудь еще?

Ответы на вопрос(5)

Ваш ответ на вопрос