広告

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

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


概要

日付/時間の計算時の問題を示すために使用される例外。

クラス構成

DateTimeException は、日付や時刻で問題が発生したときに投げられる非チェック例外です。
例えば、12月40日という存在しない日付を作成しようとすると発生します。

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

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

// 結果
// ↓
//-- OK --
//date : 2100-12-31
//-- NG --
//DateTimeException! : Invalid value for DayOfMonth (valid values 1 - 28/31): 40
System.out.println("-- OK --");
final var time1 = LocalTime.of(12, 30);
System.out.println("time : " + time1);

System.out.println("-- NG --");
try {
    final var time2 = LocalTime.of(12, 60);
} catch (DateTimeException e) {
    System.out.println("DateTimeException! : " + e.getMessage());
}

// 結果
// ↓
//-- OK --
//time : 12:30
//-- NG --
//DateTimeException! : Invalid value for MinuteOfHour (valid values 0 - 59): 60

コンストラクタ

DateTimeException (String message)

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

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

DateTimeException (String message, Throwable cause)

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

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

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

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


関連記事

ページの先頭へ