広告

Java : NoSuchElementException - API使用例

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


概要

要求されている要素が存在しないことを示すために、各種アクセス用メソッドによってスローされます。

クラス構成

NoSuchElementException は、要素が見つからないときに発生する非チェック例外です。
標準API では、ListOptional などで使われています。

通常は、NoSuchElementException を発生させないように、要素を取得する前に要素が存在するかどうかチェックします。

関連 : 例外 vs. 戻り値でエラーチェック

// Bad
final var list = List.<String>of();
try {
    final var value = list.getFirst();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// 結果
// ↓
//NoSuchElementException!

// Good
if (!list.isEmpty()) {
    System.out.println("value : " + list.getFirst());
} else {
    System.out.println("Empty!");
}

// 結果
// ↓
//Empty!
// Bad
final var opt = Optional.<String>empty();
try {
    final var value = opt.orElseThrow();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException! : " + e.getMessage());
}

// 結果
// ↓
//NoSuchElementException! : No value present

// Good
if (opt.isPresent()) {
    System.out.println("value : " + opt.orElseThrow());
} else {
    System.out.println("Empty!");
}

// 結果
// ↓
//Empty!

コンストラクタ

NoSuchElementException ()

nullをエラー・メッセージ文字列としてNoSuchElementExceptionを作成します。

final var e = new NoSuchElementException();
System.out.println(e); // java.util.NoSuchElementException

NoSuchElementException (String s)

エラー・メッセージ文字列sへの参照を保存してNoSuchElementExceptionを作成し、後でgetMessageメソッドで取得できるようにします。

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

NoSuchElementException (String s, Throwable cause)

指定された詳細メッセージと原因でNoSuchElementExceptionを構築します。

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

System.out.println(e); // java.util.NoSuchElementException: abcd
System.out.println(e.getMessage()); // abcd

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

NoSuchElementException (Throwable cause)

指定された原因でNoSuchElementExceptionを構築します。

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

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


関連記事

ページの先頭へ