如何处理 CompletableFuture 中的异常和 return 整数值

How to handle exception in CompletableFuture and return Integer value

我有这样的方法:

public Integer handleException(CompletableFuture<String> future)
      throws ExecutionException, InterruptedException {

    return future
        .thenApply(Integer::parseInt)
        .handle((result, ex) -> {
          if (result != null) {
            LOGGER.log(Level.INFO, ex.getMessage());
            return null;
          } else {
            return 42;
          }
        });
}

我想在 CompletableFuture<String> 中处理异常。我想要做的就是记录异常错误,以防出现 return -1,如果没有错误,我想 return 1。我的代码看似有效,但 handle 方法中的整个表达式是带有错误的下划线:

我有一个方法:

return future
        .thenApply(Integer::parseInt)
        .exceptionally(
            s -> {
              LOGGER.log(Level.INFO, "ASD");
              s.printStackTrace();
              return -1;
            })
        .get();

这可行,但据推测这不是异常处理的最佳解决方案,这就是我决定使用 handle() 方法的原因。 如果有人提出我在 handle() 方法方法中做错了什么的建议,我将不胜感激。

函数 handleException 被声明为 return Integer,而您正试图 return CompletableFuture<Integer>。可能忘了 .get()...