如何处理 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()
...
我有这样的方法:
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()
...