CompletableFuture.whenComplete()
时间: 2023-11-10 09:02:32 浏览: 126
CompletableFuture.whenComplete()是一个异步操作的回调函数。当一个异步操作完成时,可以使用该方法来执行一些操作。它接受一个BiConsumer<T, Throwable>参数,其中T是异步操作的结果类型,Throwable则是可能抛出的异常。
在运行whenComplete()时,如果异步操作正常完成,则BiConsumer会接收到异步操作的结果和一个null异常。如果异步操作出现异常,则BiConsumer会接收到一个null结果和一个Throwable异常。在任何一种情况下,处理逻辑都将在回调函数中执行。
举个例子,我们可以使用CompletableFuture.whenComplete()来打印异步操作的结果或异常信息:
```java
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> 42 / 0);
future.whenComplete((result, exception) -> {
if (exception != null) {
System.out.println("Exception occurred: " + exception.getMessage());
} else {
System.out.println("Result: " + result);
}
});
```
上面的代码中,由于除数为0,会抛出ArithmeticException异常,因此whenComplete()的回调函数只会接收到一个异常参数。
阅读全文