Одна вещь, которую вы можете сделать, это «восстановиться» от исключения прямо в будущем Akka:
return async(Akka.asPromise(ask(myActor, "hello", uploadImageTimeout).recover(
new Recover<Object>() {
@Override
public Object recover(Throwable t) throws Throwable {
if( t instanceof AskTimeoutException ) {
Logger.error("Got exception: ", t);
return internalServerError("Timeout");
}
else {
Logger.error("Got exception: ", t);
return internalServerError("Got Exception: " + t.getMessage());
}
}
})
).map(new Function<Object, Result>() {
@Override
public Result apply(Object response) {
if( response instanceof Result ) {
// Result objects are returned by the recover handler above
return (Result)response;
}
else {
return ok(doSomethingWithResponse(response));
}
}
}));