Angenommen,
ich möchte mich mit einem gewissen Wert erholen, wenn ich eine bestimmte Ausnahme erhalte. Andernfalls geben Sie die fehlgeschlagene Zukunft mit der Ausnahme zurück. Ich würde so etwas erwarten: < /p>
Code: Select all
public static void main(String[] args) {
CompletableFuture
.supplyAsync(FuturesExample::fetchValue)
.exceptionally(throwable -> {
if (throwable instanceof RuntimeException) {
return "All good";
}
throw throwable; // does not compile
});
}
public static String fetchValue() {
// code that potentially throws an exception
return "value";
}
Wenn die Funktion fetchValue eine -Ausprüfung auslegen würde, möchte ich sie in den geketteten Methoden verarbeiten. Ich habe beide zurückgeworfenen und Throwable ausprobiert, aber auch nicht kompiliert. Bieten CompletenableFuture eine Lösung für dieses Szenario an? Mir ist bewusst, dass die Funktion Schnittstelle, die der Parameter der außergewöhnlich Methode ist, keine Ausnahmen macht -
ich möchte in diesem Fall nur die bereits fehlgeschlagene Zukunft zurückgeben.
Ich möchte eine Lösung mit Java 8 finden.