CompletableFuturey异常处理
时间: 2023-07-21 20:01:19 浏览: 39
在CompletableFuture中,可以使用`exceptionally`方法来处理异常。`exceptionally`方法接收一个Function参数,用于处理异常情况。
以下是一个示例,展示了如何使用`exceptionally`方法处理异常:
```java
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {
// 异步执行的任务
throw new RuntimeException("Error occurred");
});
CompletableFuture<Integer> result = future.exceptionally(ex -> {
// 异常处理逻辑
System.out.println("Exception occurred: " + ex.getMessage());
return 0; // 返回默认值
});
System.out.println(result.join()); // 输出:0
```
在这个示例中,我们创建了一个CompletableFuture,模拟一个抛出异常的异步任务。然后,我们使用`exceptionally`方法来处理异常情况,并返回一个默认值。在异常处理逻辑中,我们打印了异常信息,并返回了0作为默认值。
需要注意的是,`exceptionally`方法返回一个新的CompletableFuture对象,它的结果是处理异常后得到的值。在上面的示例中,我们输出了最终的结果0。
除了`exceptionally`方法,还有其他一些方法可以用于处理异常,如`handle`和`whenComplete`。这些方法提供了更灵活的异常处理方式,可以根据具体需求选择适合的方法来处理异常。