Java : AsynchronousCloseException - API使用例
AsynchronousCloseException (Java SE 24 & JDK 24) の使い方まとめです。
 ほとんどのメソッドにサンプルコードがあります。
 APIドキュメントのおともにどうぞ。
概要
別のスレッドがチャネルまたは入出力操作時にブロックされるチャネルの一部をクローズしたときにスレッドが受け取るチェック例外です。
AsynchronousCloseException はチェック例外です。
 ブロック中のチャネルが別スレッドでクローズされたときなどにスローされます。
try (final var executor = Executors.newSingleThreadExecutor()) {
    final var future = executor.submit(() -> {
        try (final var channel = ServerSocketChannel.open()) {
            System.out.println("bind ...");
            channel.bind(new InetSocketAddress("127.0.0.1", 8000));
            System.out.println("bind OK!");
            System.out.println("accept ...");
            channel.accept();
            System.out.println("accept OK!");
        } catch (AsynchronousCloseException e) {
            System.out.println("AsynchronousCloseException!");
        } catch (IOException e) {
            System.out.println("IOException!");
        }
    });
    TimeUnit.SECONDS.sleep(2);
    System.out.println("-- future.cancel --");
    future.cancel(true);
}
// 結果
// ↓
//bind ...
//bind OK!
//accept ...
//-- future.cancel --
//AsynchronousCloseException!
 
コンストラクタ
AsynchronousCloseException ()
このクラスのインスタンスを構築します。
final var e = new AsynchronousCloseException();
System.out.println(e); // java.nio.channels.AsynchronousCloseException
 
      Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。



