広告

Java : IllegalStateException - API使用例

IllegalStateException (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

不正または不適切なときにメソッドが呼び出されたことを示します。 すなわち、Java環境またはJavaアプリケーションは、要求されたオペレーションに適した状態ではありません。

クラス構成

メソッドの呼び出しを許可していない 状態 のときに、メソッドを呼び出すと発生する非チェック例外です。

例えば、

  • キューに容量以上の要素を追加しようとした
  • オブジェクトを close したのに、そのオブジェクトを使おうとした

などです。

final var queue = new ArrayBlockingQueue<String>(3);
System.out.println(queue.remainingCapacity()); // 3

queue.add("aaa");
queue.add("bbb");
queue.add("ccc");

System.out.println(queue); // [aaa, bbb, ccc]
System.out.println(queue.remainingCapacity()); // 0

try {
    queue.add("ddd");
} catch (IllegalStateException e) {
    System.out.println(e);
}

// 結果
// ↓
//java.lang.IllegalStateException: Queue full
class Sample implements Closeable {
    private boolean closed;

    @Override
    public void close() {
        closed = true;
    }

    public String read() {
        if (closed) {
            throw new IllegalStateException("Closed!");
        }

        return "abcd";
    }
}

final var sample = new Sample();
System.out.println(sample.read()); // abcd

sample.close();

try {
    final var ret = sample.read();
} catch (IllegalStateException e) {
    System.out.println(e);
}

// 結果
// ↓
//java.lang.IllegalStateException: Closed!

コンストラクタ

IllegalStateException ()

詳細メッセージを持たないIllegalStateExceptionを構築します。

final var e = new IllegalStateException();
System.out.println(e); // java.lang.IllegalStateException

IllegalStateException (String s)

指定された詳細メッセージを持つIllegalStateExceptionを構築します。

final var e = new IllegalStateException("abcde");
System.out.println(e); // java.lang.IllegalStateException: abcde
System.out.println(e.getMessage()); // abcde

IllegalStateException (String message, Throwable cause)

指定された詳細メッセージおよび原因を使用して新規例外を構築します。

final var cause = new IllegalStateException("XYZ");
final var e = new IllegalStateException("abcde", cause);

System.out.println(e); // java.lang.IllegalStateException: abcde
System.out.println(e.getMessage()); // abcde

System.out.println(e.getCause()); // java.lang.IllegalStateException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ

IllegalStateException (Throwable cause)

指定された原因と詳細メッセージ(cause==null ? null : cause.toString())を持つ新しい例外を構築します(通常、causeのクラスと詳細メッセージを含みます)。

final var cause = new IllegalStateException("XYZ");
final var e = new IllegalStateException(cause);

System.out.println(e); // java.lang.IllegalStateException: java.lang.IllegalStateException: XYZ
System.out.println(e.getMessage()); // java.lang.IllegalStateException: XYZ

System.out.println(e.getCause()); // java.lang.IllegalStateException: 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」をご参照ください。


関連記事

ページの先頭へ