Java : IllegalStateException - API使用例

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


概要

クラス構成

オブジェクトがメソッドの呼び出しを許容していない状態のときに使う非チェック例外です。
例えば、オブジェクトをcloseしたのに、そのオブジェクトを使おうとした場合です。

// ※コード例のための実用性のないクラスです。
class Sample implements Closeable {

    private boolean closed = false;

    @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();
sample.read(); // java.lang.IllegalStateException: Closed!

コンストラクタ

IllegalStateException ()

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

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

IllegalStateException (String s)

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

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

IllegalStateException (String message, Throwable cause)

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

final Throwable cause = new IllegalStateException("XYZ");
final IllegalStateException 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 Throwable cause = new IllegalStateException("XYZ");
final IllegalStateException 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」をご参照ください。


関連記事

ページの先頭へ