Java 비동기 프로그래밍에서 CompletableFuture는 비동기 작업이 완료된 후 콜백을 수행하는 데 도움이 되며 우수한 예외 처리 메커니즘을 가지고 있습니다. 이 기사에서는 CompletableFuture의 whenComplete 및 예외 처리 기능을 사용하는 방법을 소개합니다.
CompletableFuture의 whenComplete 함수는 비동기 작업이 완료되면 호출되는 콜백 함수입니다. 비동기 작업이 정상적으로 완료되면 Complete의 첫 번째 매개 변수가 비동기 작업의 결과인 경우 콜백 함수에서 그 결과에 대해 작업을 수행할 수 있습니다. 비동기 작업이 실패하면 예외를 whenComplete의 두 번째 매개 변수로 콜백 함수에 전달합니다.
샘플 코드:
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { return "hello world"; }); future.whenComplete((result, throwable) -> { if (throwable == null) { System.out.println("result: " + result); } else { System.out.println("exception: " + throwable.getMessage()); } });
위 코드에서는 먼저 CompletableFuture 인스턴스를 생성하고 SupplyAsync 메서드를 사용하여 "hello world" 문자열을 반환하는 작업을 비동기적으로 실행합니다. 비동기 작업이 완료된 후 처리하기 위해 whenComplete 함수를 콜백 함수로 사용합니다. 비동기 작업이 정상적으로 완료되면 결과를 출력하고, 비동기 작업이 실패하면 예외 정보를 출력합니다.
CompletableFuture의 예외적 기능도 콜백 함수이지만 비동기 작업에서 예외가 발생할 때만 호출됩니다. 반환 값은 예외 상황을 처리하는 데 사용되는 새로운 CompletableFuture 인스턴스입니다. 예외적으로 함수에서 예외를 처리하고 기본값이나 다른 값을 반환할 수 있습니다.
샘플 코드:
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { throw new RuntimeException("exception occurred"); }); CompletableFuture<String> result = future.exceptionally(throwable -> { return "default value"; }); result.whenComplete((value, throwable) -> { if (throwable == null) { System.out.println("result: " + value); } else { System.out.println("exception: " + throwable.getMessage()); } });
위 코드에서는 SupplyAsync 메서드를 사용하여 예외를 발생시키는 작업을 수행합니다. 예외를 처리하기 위해 예외적으로 함수를 사용하고 그 반환 값은 새로운 CompletableFuture 인스턴스입니다. 콜백 함수에서 결과를 처리할 수 있습니다. 예외가 포착되지 않으면 예외 정보를 인쇄하고, 예외가 포착되어 처리되면 반환된 기본값을 인쇄합니다.
요약
이 글에서는 예외 처리를 위해 CompletableFuture의 whenComplete 및 예외적 기능을 사용하는 방법을 소개합니다. CompletableFuture의 비동기 콜백 기능과 예외 처리 메커니즘을 사용하면 Java 비동기 프로그래밍의 효율성과 안정성을 크게 향상시킬 수 있습니다.
위 내용은 Java에서 예외 처리를 위해 CompletableFuture의 whenComplete 및 예외적으로 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!