NullPointerExceptionがスローされるタイミング
NullPointerExceptionがスローされるタイミングについて
黒本を解いていて実行結果が「null」が返される場合と、「NullPointerException」がスローされる時があります。「NullPointerException」がスローされる条件は何ですか?
該当するソースコード(例)
public class Main {
public static vooid main(String[] args) {
try {
String[] array = new String[5];
array[1] = "A";
array[2] = "B";
array[3] = "C";
for (String str : array) {
System.out.println(str);
}
} catch (Exception e) {
System.out.println("Error");
}
}
}
//実行結果
null A B C null
自分で試したこと
他の方のQiitaの記事や公式ドキュメントを読んだりし、調べた結果としては、
null値の参照型変数を参照しようとした時に発生する例外
参照型変数
- 配列型(sample[],、String[])
- クラス型(String型、List型、Map型、Set型)
- インターフェース型
というものが出てきました。ですが、上記のコードのように配列型やクラス型を使用しているが「NullPointerException」がスローされていないためイマイチ理解できていません。
拙い文章ですが、ご教示頂けたらと思います。