第二十一章 コマンドラインから入力する
Consoleがnullの場合
コマンドラインを取得できなかった場合の処理です。
cons.readLine("input: ");
Consoleがnullの場合
Sample21_01.java
//Sample21_01.java
import java.io.Console;
public class Sample21_01 {
public static void main(String[] args) {
Console cons = System.console();
String str = null;
if (cons != null) {
str = cons.readLine("input: ");
}
System.out.println("echo : " + str);
}
}
サンプルコードの
if (cons != null)は
何をしてるんすか?
Console cons = System.console(); で、
コマンドラインを取得できなかった場合の戻り値は nullになります。
(変数 cons の値が nullになります)
例えば、コマンドラインを使わずにプログラムを実行すると nullになります。
if (cons != null) をしないで
コマンドラインを使わずに実行してみた。
こんな感じだ。
Eclipseにて実行
統合開発環境Eclipseでの実行例です。
コマンドラインが取得できなかったため変数「cons」の値が null になりました。
cons がnull(参照不可)にもかかわらず consのメソッドを実行した為、
例外 java.lang.NullPointerException が発生しました。
例外が出る前に
if (cons != null)で回避して、
入力待ち受けをしない様にしているんだ。
コマンドラインで使うなら無くても大丈夫だよ。
なるほど!
目的に応じて、強制終了させてもいいですし、
キャッチしてもいいでしょう。
ご参照↓
第十九章 Exception(例外)
お疲れ様でした。