已完成未来() 返回已使用给定值完成的已完成未来
。
我们如何构造一个已经异常完成的< code>CompletableFuture?
也就是说,我希望future抛出一个异常,而不是返回值。
Java 9提供了< code > completablefuture . failed future(Throwable ex)来做这件事。
与Java 9和更高版本不同,Java 8没有为这种场景提供静态工厂方法。可以改用默认构造函数:
CompletableFuture<T> future = new CompletableFuture<>();
future.completeExceptionally(exception);
我研究了以下代码:如何组合3个或多个CompletionStages?,但在这篇文章中,只有来自CompletableFutures的已完成任务被组合。 我如何将异步的CompletableFuture与Complted CompletableFuture相结合,以便将已经完成的CompletableFuture的结果与尚未计算结果的结果相结合?
问题内容: __ 我没有看到一种处理异步结果异常的明显方法。例如,如果我想重试异步操作。我会期望像这样的事情,但是handleAsync并没有按照您认为的那样做- 异步地在另一个线程上运行回调。在这里返回CompletionStage是不正确的。当天的危害问题:就是因为是为了什么? AskPong在哪里问演员: 问题答案: __ 在试图找出用Java 8完成Scala的restoreWith的正确
到目前为止我在Java方面的努力
问题内容: 我有以下代码: 抛出一个。我不想在这里处理此问题,但是将异常从抛出给的调用者。 问题答案: 您的代码建议您稍后以相同的方法使用异步操作的结果,因此无论如何都必须进行处理,因此一种处理方法是 在的异步处理中抛出的所有异常都将在调用时包装为一个,除了我们已经包装在一个。 当重新引发的原因时,我们可能会遇到未检查的异常,即or的子类或我们的自定义检查的异常。上面的代码通过多次捕获来处理所有这
假设我想在收到特定异常时恢复某个值,否则返回失败的未来。我希望是这样的: 如果函数会抛出检查过的异常,我想在链式方法中处理它。我尝试过和,但都无法编译。是否为这种情况提供了任何解决方案?我知道接口是方法的参数,它不会抛出任何异常——在这种情况下,我只想返回已经失败的未来。我想找到使用Java8的解决方案。