広告

Java : UnsupportedOperationException - API使用例

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


概要

要求されたオペレーションがサポートされていないことを示すためにスローされます。

クラス構成

UnsupportedOperationException は、メソッドがサポートされていないときに発生する非チェック例外です。
自作したクラスでも使いやすい、とても汎用的な例外ですね。

標準APIで使われている例:

  • 変更不可能List に対して List.add などの更新用メソッドを呼び出したときに発生します。
// List.of は変更不可のリストを作成します。
final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

// 読み取りは OK です。
System.out.println(list.get(0)); // aaa

// 更新は NG です。
try {
    list.add("ddd");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// 結果
// ↓
//UnsupportedOperationException!

コンストラクタ

UnsupportedOperationException ()

詳細メッセージを指定しないでUnsupportedOperationExceptionを構築します。

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

UnsupportedOperationException (String message)

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

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

UnsupportedOperationException (String message, Throwable cause)

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

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

System.out.println(e); // java.lang.UnsupportedOperationException: abcd
System.out.println(e.getMessage()); // abcd

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

UnsupportedOperationException (Throwable cause)

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

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

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


関連記事

ページの先頭へ