広告

Java : NullPointerException - API使用例

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


概要

オブジェクトが必要な場合に、アプリケーションがnullを使おうとするとスローされます。

クラス構成

NullPointerException は、オブジェクトが null のときにメソッドを使おうとすると発生する 非チェック例外 です。

また、パラメータが null かチェックする Objects.requireNonNull でも、パラメータが null のときに NullPointerException が発生します。

基本的に NullPointerException が発生したら、それはプログラムに問題があるときです。
NullPointerException が 発生しない ようにプログラムを修正しましょう。
( try ~ catch で NullPointerException を握りつぶすことはおすすめしません)

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

final String str1 = "abcd";
final var upperCase1 = str1.toUpperCase();
System.out.println(upperCase1); // ABCD

try {
    final String str2 = null;
    final var upperCase2 = str2.toUpperCase();
} catch (NullPointerException e) {
    System.out.println("NullPointerException! : " + e.getMessage());
}

// 結果
// ↓
//NullPointerException! : Cannot invoke "String.toUpperCase()" because "str2" is null
class Sample {
    private final String value;

    Sample(String value) {
        this.value = Objects.requireNonNull(value, "value is null");
    }

    @Override
    public String toString() {
        return value;
    }
}

final var aaa = new Sample("abcd");
System.out.println(aaa); // abcd

try {
    final var bbb = new Sample(null);
} catch (NullPointerException e) {
    System.out.println("NullPointerException! : " + e.getMessage());
}

// 結果
// ↓
//NullPointerException! : value is null

コンストラクタ

NullPointerException ()

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

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

NullPointerException (String s)

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

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

メソッド

String getMessage ()

このスロー可能オブジェクトの詳細メッセージ文字列を返します。

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

Throwableで宣言されたメソッド

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

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


関連記事

ページの先頭へ