広告

Java : DateTimeParseException (日付・時刻の解析例外) - API使用例

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


概要

解析中にエラーが発生した場合にスローされる例外。

クラス構成

DateTimeParseException は、日付・時刻の解析に失敗したときに発生する非チェック例外です。
例えば、文字列を日付や時刻に変換しようとして失敗したときに発生します。

System.out.println("-- OK --");
final var date1 = LocalDate.parse("2100-12-31");
System.out.println("date : " + date1);

System.out.println("-- NG --");
try {
    final var date2 = LocalDate.parse("2100-12-40");
} catch (DateTimeParseException e) {
    System.out.println("DateTimeParseException! : " + e.getMessage());
}

// 結果
// ↓
//-- OK --
//date : 2100-12-31
//-- NG --
//DateTimeParseException! : Text '2100-12-40' could not be parsed:
// Invalid value for DayOfMonth (valid values 1 - 28/31): 40

コンストラクタ

DateTimeParseException (String message, CharSequence parsedData, int errorIndex)

指定されたメッセージを使用して新しい例外を構築します。

final var e = new DateTimeParseException("abcd", "2100-12-40", 8);
System.out.println(e); // java.time.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8

DateTimeParseException (String message, CharSequence parsedData, int errorIndex, Throwable cause)

指定されたメッセージと原因を使用して新しい例外を構築します。

final var cause = new DateTimeException("XYZ");
final var e = new DateTimeParseException("abcd", "2100-12-40", 8, cause);

System.out.println(e); // java.time.format.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8

System.out.println(e.getCause()); // java.time.DateTimeException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ

メソッド

int getErrorIndex ()

エラーが検出されたインデックスを返します。

final var e = new DateTimeParseException("abcd", "2100-12-40", 8);
System.out.println(e); // java.time.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8

String getParsedString ()

解析中だった文字列を返します。

final var e = new DateTimeParseException("abcd", "2100-12-40", 8);
System.out.println(e); // java.time.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8

Throwableで宣言されたメソッド

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

Java API 使用例 : Throwable」をご参照ください。


関連記事

ページの先頭へ