ホームページ > Java > &#&チュートリアル > Callable を使用して ExecutorService タスクからの例外を処理する方法

Callable を使用して ExecutorService タスクからの例外を処理する方法

Barbara Streisand
リリース: 2024-11-14 09:24:01
オリジナル
598 人が閲覧しました

How to Handle Exceptions from ExecutorService Tasks Using Callable?

Callable を使用した Java ExecutorService タスクからの例外の処理

Java ExecutorService タスクからの例外を処理しようとする場合、ThreadPoolExecutor をサブクラス化し、オーバーライドするのが一般的です。その afterExecute メソッド。ただし、このアプローチは常に期待どおりに機能するとは限りません。

afterExecute をオーバーライドする代わりに、呼び出し可能タスクの利用を検討してください。 Callable.call() を使用すると、呼び出し元のスレッドに伝播できるチェック済み例外をスローできます。

Callable を使用した例を次に示します。

Callable task = ...;
Future future = executor.submit(task);

// Perform other tasks while the Callable executes

try {
    future.get();
} catch (ExecutionException ex) {
    // Process the exception thrown by the Callable
    ex.getCause().printStackTrace();
}
ログイン後にコピー

Callable.call() がスローするとき、例外の場合、ExecutionException でラップされ、Future.get() によって再スローされます。これにより、ThreadPoolExecutor のサブクラス化と比較して、より堅牢な例外処理メカニズムが提供されます。

さらに、Callable を使用すると、例外が回復可能な場合にタスクを再送信できるため、エラー処理の柔軟性が向上します。

以上がCallable を使用して ExecutorService タスクからの例外を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート