Сопоставить исключение в завершаемом будущем с другим типом исключения?
Я использую завершаемые фьючерсы Java 8, и я хотел бы иметь возможность взять исключение, которое бросает будущее, и преобразовать его в другое исключение.
Кажется, что все составные вещи, которые я пробовал, замыкаются, как только возникает исключение.
Например, используя будущее Scala, я могу сделать что-то вроде этого:
scala.concurrent.Future<Object> translatedException = ask.recover(new Recover<Object>() {
@Override public Object recover(final Throwable failure) throws Throwable {
if (failure instanceof AskTimeoutException) {
throw new ApiException(failure);
}
throw failure;
}
}, actorSystem.dispatcher());
и я хотел бы иметь возможность имитировать это в будущем составном блоке в Java. Это возможно?