如何使用Java和Akka捕获Play中的AskTimeoutException?

时间:2017-01-26 12:12:50

标签: java exception playframework akka try-catch

我的服务中有公共方法,根据我的查询字符串返回一些东西。一切顺利,它返回我想要的CompletionStage与预期的数据。但是我想要涵盖所有可能的事件(例如IOFailure或一些运行时异常)。我注意到ask()方法可能会导致AskTimeoutException。我没有一个想法如何捕捉这个例外。我不能在常规的try-catch块中执行此操作,因为" AskTimeoutException永远不会在相应的块中抛出"

这是我的方法:

public CompletionStage<FindResponseMsg> find(String query, int limit) {
    FindMsg findMsg = new FindMsg(query, limit);
    // TODO timeout
    return FutureConverters.toJava(ask(indexerRouter, findFileMsg, 10000))
            .thenApply(response -> ((FindResponseMsg) response));

}

我的问题是如何在即将到来的未来捕捉失败?

0 个答案:

没有答案