広告

Java : IllegalArgumentException - API使用例

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


概要

不正な引数、または不適切な引数をメソッドに渡したことを示すためにスローされます。

クラス構成

メソッドのパラメータが不正だった場合に使うチェック例外です。
とても汎用的に使えるおすすめの API です。

public void func(String str) {
    if (str == null) {
        throw new IllegalArgumentException("str is null!");
    }
    if (str.isEmpty()) {
        throw new IllegalArgumentException("str is empty!");
    }

    System.out.println(str);
}
func("abcd"); // abcd

func(null); // java.lang.IllegalArgumentException: str is null!

func(""); // java.lang.IllegalArgumentException: str is empty!

もし、null かどうかのチェックだけであれば、代わりに Objects.requireNonNull ​を使うのがおすすめです。

public void func(String str) {
    Objects.requireNonNull(str, "str is null!");

    System.out.println(str);
}
func("abcd"); // abcd

func(null); // java.lang.NullPointerException: str is null!

if文が不要で1行で書けます。コードがシンプルになりますね。
1つ違う点としては、IllegalArgumentException ではなく NullPointerException を発生させます。

関連記事:メソッドのパラメータ(引数)は使う側でチェックしよう


コンストラクタ

IllegalArgumentException ()

詳細メッセージなしでIllegalArgumentExceptionを構築します。

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

IllegalArgumentException (String s)

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

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

IllegalArgumentException (String message, Throwable cause)

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

final var cause = new IllegalArgumentException("XYZ");
final var e = new IllegalArgumentException("abcde", cause);

System.out.println(e); // java.lang.IllegalArgumentException: abcde
System.out.println(e.getMessage()); // abcde

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

IllegalArgumentException (Throwable cause)

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

final var cause = new IllegalArgumentException("XYZ");
final var e = new IllegalArgumentException(cause);

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

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


関連記事

ページの先頭へ