Java の非同期プログラミングでは、CompletableFuture は非常に便利なクラスであり、非同期操作の完了後にコールバックを実行するのに役立ち、優れた例外処理メカニズムを備えています。この記事では、CompletableFuture の whenComplete と例外処理のための例外関数の使用方法を紹介します。
CompletableFuture の whenComplete 関数は、非同期操作が完了したときに呼び出されるコールバック関数です。非同期操作が正常に完了し、Complete の最初のパラメーターが非同期操作の結果である場合、コールバック関数でその結果を操作できます。非同期操作が失敗すると、例外が whenComplete の 2 番目のパラメーターとしてコールバック関数に渡されます。
サンプル コード:
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 メソッドを使用して、例外をスローするタスクを実行します。例外を処理するには、Exceptionally 関数を使用します。その戻り値は、新しい CompletableFuture インスタンスです。コールバック関数で結果を処理できます。例外がキャッチされなかった場合は例外情報が出力され、例外がキャッチされて処理された場合は返されたデフォルト値が出力されます。
概要
この記事では、CompletableFuture の whenComplete と、例外処理のための例外的な関数の使用方法を紹介します。 CompletableFuture の非同期コールバック関数と例外処理メカニズムを使用すると、Java の非同期プログラミングの効率と信頼性を大幅に向上させることができます。
以上がJava での例外処理に CompletableFuture の whenComplete および例外関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。