Eccezione Si consideri il seguente codice -Java 8 Fornitore movimentazione
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.
}
}
La cosa di cui sopra funziona bene. Tuttavia sendNumbers
potrebbe anche generare un'eccezione nel mio caso. Come -
class SupplyNumbers {
public static Integer sendNumbers() throws Exception {
return 25; // just for working sake its not correct.
}
}
Ora voglio gestire questa eccezione come 'y' nel mio biConsumer
. Ciò mi aiuterà a gestire il risultato e l'eccezione (se presente) all'interno di una singola funzione (biConsumer
).
Qualche idea? Posso usare CompletableFuture.exceptionally(fn)
qui o qualsiasi altra cosa?
Funziona solo per le eccezioni non controllati. – Nicholi
@Nicholi A quale punto è stata accennata l'eccezione per la verifica dell'OP? –
@Nicholi Soprattutto per te, ho modificato una risposta e aggiunto un try-catch. Non è stato difficile, vero? –