Java : NoSuchElementException - API使用例
NoSuchElementException (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
NoSuchElementException は、要素が見つからないときに発生する非チェック例外です。
標準API では、List や Optional などで使われています。
通常は、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 ()
final var e = new NoSuchElementException();
System.out.println(e); // java.util.NoSuchElementException
NoSuchElementException (String s)
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)
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)
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」をご参照ください。
関連記事
- API 使用例
- Error (エラー)
- Exception (チェック例外)
- RuntimeException (非チェック例外)
- ArithmeticException (算術例外)
- ArrayIndexOutOfBoundsException
- ArrayStoreException
- CancellationException
- ClassCastException (キャスト例外)
- ConcurrentModificationException (並列処理例外)
- DateTimeException (日付・時刻の例外)
- DateTimeParseException (日付・時刻の解析例外)
- IllegalArgumentException
- IllegalStateException
- IndexOutOfBoundsException
- NullPointerException
- PatternSyntaxException
- StringIndexOutOfBoundsException
- UnsupportedOperationException
- Throwable