¿Mapear excepción en futuro completo a un tipo de excepción diferente?

Estoy usando los futuros completables de java 8 y me gustaría poder tomar una excepción que se avecina en el futuro y transformarla en una excepción diferente.

Todas las cosas compuestas que he probado parecen quedar en cortocircuito una vez que ocurre una excepción.

Usando un futuro scala, por ejemplo, puedo hacer algo como esto:

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());

y me gustaría poder imitar eso en un futuro bloque compuesto en Java. es posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta