如果 completableFuture 失败,如何记录?
How to log if a completableFuture fails?
我有这个方法:
default <U> CompletableFuture<U> submit(Supplier<U> supplier) {
return CompletableFuture.supplyAsync(supplier, .....getThreadPool());
}
它被不同的 类 广泛使用,但目前如果计算失败则没有默认日志记录。我的第一个方法是:
.exceptionally(throwable ->
.....handleThrowable(throwable, runnable);
)
但是这个方法是为了恢复,因为我必须return一些东西。如果我只想记录它怎么办?
这将处理异常和 return 原始结果,因此下游代码也将有机会处理异常。这是你想要的吗?
default <U> CompletableFuture<U> submit(Supplier<U> supplier) {
return CompletableFuture.supplyAsync(supplier, ....)
.whenComplete((u, ex) -> {
if (ex != null) {
handleThrowable(ex);
}
});
}
我有这个方法:
default <U> CompletableFuture<U> submit(Supplier<U> supplier) {
return CompletableFuture.supplyAsync(supplier, .....getThreadPool());
}
它被不同的 类 广泛使用,但目前如果计算失败则没有默认日志记录。我的第一个方法是:
.exceptionally(throwable ->
.....handleThrowable(throwable, runnable);
)
但是这个方法是为了恢复,因为我必须return一些东西。如果我只想记录它怎么办?
这将处理异常和 return 原始结果,因此下游代码也将有机会处理异常。这是你想要的吗?
default <U> CompletableFuture<U> submit(Supplier<U> supplier) {
return CompletableFuture.supplyAsync(supplier, ....)
.whenComplete((u, ex) -> {
if (ex != null) {
handleThrowable(ex);
}
});
}