completablefuture.get 异常处理
时间: 2023-11-24 14:10:05 浏览: 58
当使用 `CompletableFuture.get()` 方法时,可能会抛出以下三种异常:
1. `InterruptedException`:如果在等待结果的过程中线程被中断,则会抛出该异常。
2. `ExecutionException`:如果在计算结果阶段发生异常,则会抛出该异常。可以通过 `getCause()` 方法获取原始异常。
3. `CancellationException`:如果调用了 `CompletableFuture.cancel()` 方法来取消计算,则会抛出该异常。
为了处理这些异常,可以使用 `try-catch` 块来捕获和处理它们。例如:
```java
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
// 计算结果
return "Hello, world!";
});
try {
String result = future.get();
System.out.println(result);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (CancellationException e) {
e.printStackTrace();
}
```
在这个例子中,我们使用 `try-catch` 块来捕获可能抛出的三种异常。最后,我们打印出计算的结果。
阅读全文