Consoleがnullの場合 - 萌えJava超入門
第二十一章 コマンドラインから入力する

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(例外)



お疲れ様でした。




© 2019 awasekagami