Java : ExecutionException - API使用例
ExecutionException (Java SE 23 & JDK 23) の使い方まとめです。
ほとんどのメソッドにサンプルコードがあります。
APIドキュメントのおともにどうぞ。
概要
ExecutionException は、ExecutorService で実行したタスクが例外になったときに発生する チェック例外 です。
タスクで実際に発生した例外は getCause メソッドで取得できます。
try (final var executor = Executors.newSingleThreadExecutor()) {
final var future = executor.submit(() -> {
System.out.println("task : start");
throw new IllegalStateException("task error!");
});
future.get();
} catch (ExecutionException e) {
System.out.println("ExecutionException! : " + e.getCause());
}
// 結果
// ↓
//task : start
//ExecutionException! : java.lang.IllegalStateException: task error!
コンストラクタ
ExecutionException ()
protected です。
独自にサブクラスを作ることは少ないと思いますので、コード例は割愛します。
ExecutionException (String message)
protected です。
独自にサブクラスを作ることは少ないと思いますので、コード例は割愛します。
ExecutionException (String message, Throwable cause)
final var cause = new IOException("XYZ");
final var e = new ExecutionException("abcd", cause);
System.out.println(e); // java.util.concurrent.ExecutionException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getCause()); // java.io.IOException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ
ExecutionException (Throwable cause)
final var cause = new IOException("XYZ");
final var e = new ExecutionException(cause);
// java.util.concurrent.ExecutionException: java.io.IOException: XYZ
System.out.println(e);
System.out.println(e.getCause()); // java.io.IOException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。
関連記事
- API 使用例
- BlockingQueue (ブロッキング・キュー)
- Callable
- CancellationException
- ConcurrentHashMap.KeySetView (並列処理用セット)
- ConcurrentLinkedDeque (並列処理用・両端キュー)
- ConcurrentLinkedQueue (並列処理用キュー)
- ConcurrentMap (並列処理用マップ)
- ConcurrentModificationException (並列処理例外)
- ConcurrentSkipListSet (並列処理用セット)
- Condition (同期)
- CopyOnWriteArrayList (並列処理用リスト)
- CopyOnWriteArraySet (並列処理用セット)
- CountDownLatch (同期)
- CyclicBarrier (同期)
- Exchanger (同期)
- Executor
- ExecutorService
- Executors
- Future
- Future.State
- FutureTask
- InterruptedException (割込み例外)
- Lock (同期)
- Object (オブジェクト)
- Runnable
- Semaphore (セマフォ)
- Thread (スレッド)
- ThreadGroup
- ThreadLocal
- TimeUnit