NullPointerException

読み:ナル・ポインター・イクセプシャン
読み:ぬるぽ
外語:NPE: NullPointerException 英語
品詞:名詞

Javaで、妥当なオブジェクトを指していない変数に対してメソッド呼び出しをした際に発生する例外。日本では俗に「ぬるぽ」と呼ばれる。

目次

NullPointerExceptionクラスは、java.lang.RuntimeExceptionクラスのサブクラスである。

  • java.lang.Object
    • java.lang.Throwable
      • java.lang.Exception
        • java.lang.RuntimeException
          • java.lang.NullPointerException

発生原因

ぬるぽは、Javaでは非常に良く発生する例外の一つで、例えば次のような場合に発生しうる。

public class nurupo {
  public static void main(String[] args) {
    String hoge = null;
    int len;

    len = hoge.length();
  }
}

この時、hoge.length();でぬるぽが発生する。

定義の時点でnullを代入し、無効なオブジェクトとしているものに対してメソッドを呼び出したからである。

ここでは意図的に分かり易く書いてあるが、実際にはもっと分かりづらい場面でぬるぽは発生し、プログラマーを悩ませる。例えばクラスのフィールドのうち、参照型の初期値はnullであるので、これを未定義のまま参照するとぬるぽが発生する。

try-catch NullPointerException

NullPointerExceptionは、実行時例外である java.lang.RuntimeException のサブクラスであるため、RuntimeException と同様、try-catch文での例外処理を書かなくてもコンパイルエラーは生じない。

これをキャッチすることも可能である。

String hoge = null;
int len = 0;
try {
  len = hoge.length();
} catch (NullPointerException e) {
  // 例外を無視
}

しかし例外を無視するような方法は推奨されない。ぬるぽが生じるのは必ず原因があるが、この方法はその根本原因が解決していないからである。

また、事前にnullかどうか確認する方法と比して性能上のオーバーヘッドが大きい。

用語の所属
Java
例外
関連する用語
null
NULLポインター
ぬるぽ
SIGSEGV

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club