MST

星途 面试题库

面试题:Java中CompletableFuture链式调用的基本错误处理方式

在Java的CompletableFuture链式调用中,当某个异步操作抛出异常时,通常使用什么方法来捕获并处理这个异常?请举例说明。
24.3万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

在Java的CompletableFuture链式调用中,通常使用exceptionally方法来捕获并处理异步操作抛出的异常。示例如下:

import java.util.concurrent.CompletableFuture;

public class CompletableFutureExceptionHandling {
    public static void main(String[] args) {
        CompletableFuture.supplyAsync(() -> {
            if (Math.random() < 0.5) {
                throw new RuntimeException("模拟异常");
            }
            return "操作成功";
        })
        .exceptionally(ex -> {
            System.out.println("捕获到异常: " + ex.getMessage());
            return "默认值";
        })
        .thenAccept(System.out::println);
    }
}

在上述示例中,supplyAsync发起一个异步操作,若操作抛出异常,exceptionally方法会捕获该异常,并返回一个默认值。