Есть ли способ вернуть новый CompletionStage
в случае возникновения исключения?
API для exceptionally
, похоже, не позволяет вам это сделать. Есть ли способ обойти это?
По сути, я хотел бы сделать flatMap
(thenCompose
) для случая exceptionally
public CompletionStage<String> cleanupTask() {
//DO something long running
}
public CompletionStage<String> workThatCanFail() {
//Some long running task that may fail
}
public void action() {
CompletionStage<String> work =
workThatCanFail()
.exceptionally(throwable -> cleanupTask());
}
CompletableFuture
такой ужасный. Отсутствуют эти полезные идиомы - person Setheron   schedule 25.02.2016workThatCanFail()
оставляет вещи, которые нуждаются в очистке, в исключительном случае, этот метод должен инициировать/выполнить очистку сам, вместо того, чтобы полагаться на вызывающую сторону для цепочки действий очистки. - person Holger   schedule 25.02.2016