Manejo de excepciones de proveedores de Java 8 con CompletableFuture

Considere el siguiente código:

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.
    }
}

Lo anterior funciona bien. sin embargosendNumbers También podría lanzar una excepción marcada en mi caso, como:

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

Ahora quiero manejar esta excepción comoy en mibiConsumer. Esto me ayudará a manejar el resultado, así como la excepción (si corresponde) dentro de una sola función (biConsumer)

¿Algunas ideas? Puedo usarCompletableFuture.exceptionally(fn) aquí o cualquier otra cosa?

Respuestas a la pregunta(5)

Su respuesta a la pregunta