Javaのtry-catch文の動作について質問
Q&A
Javaのtry-catch文の動作について質問
現在独学でJavaの学習をしています。
諸々の参考書を元にEclipceを使用して実際にコードを書いて実行してを繰り返しているの中で、
try-catch文で例外処理が発生するメソッドをtryブロック内に記述して、メソッドが参照するフィールドをtryブロック内から外すと実行結果がランダムになってしまう原因が分からずにおります。
フィールドをtryブロック内に含めると、cacthブロック内の処理が正常に行われます。
このランダムになる原因と、tryブロック内に含めると正常に実行される理由を教えていただきたいです。
エラーを解決するものでも無いため、調べ方が難しく是非ご助力をお願いしたく存じます。
実行結果
(1回目)
nullが検出されました。
スタックトレースここから
java.lang.NullPointerException
スタックトレースここまで
at sukkiri_Hero/plactice.Main.main(Main.java:8)
(2回目)
nullが検出されました。
スタックトレースここから
スタックトレースここまで
java.lang.NullPointerException
at sukkiri_Hero/plactice.Main.main(Main.java:7)
該当するソースコード
public class Main{
public static void main(String[] args) {
String s = null;
try {
System.out.println(s.length());
}catch(NullPointerException e) {
System.out.println("nullが検出されました。");
System.out.println("スタックトレースここから");
e.printStackTrace();
System.out.println("スタックトレースここまで");
}
}
}