我正在使用 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 中的未来复合块中模仿它。这可能吗?