私は Java 8 の完了可能な先物を使用しています。未来によってスローされる例外を取得し、それを別の例外に変換できるようにしたいと考えています。
私が試したすべての複合的なものは、例外が発生すると短絡するようです。
たとえば、scala future を使用すると、次のようなことができます。
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 の将来の複合ブロックでそれを模倣できるようにしたいと考えています。これは可能ですか?