在java上获取空指针异常错误无法看到switch出了什么问题

时间:2014-03-02 22:23:10

标签: java nullpointerexception switch-statement

我得到了这段简单的代码,它调用另一个返回字符串值的类中的方法。我的程序到showinput框,我输入搜索词然后愚蠢的nullpointer在我的脸上得到了全部。我在这里拔毛,不知道该怎么做。它的案例3正在杀了我。我得到的只是java.lang.nullpointerexeption

String s = JOptionPane.showInputDialog( menu);
        try
        {  
            int i = Integer.parseInt(s);

        switch(i)
            {
                case 1:
                    f = new BasicFile();
              FileOpen = true;
              //BasicFile.Backup(f);

                display(f.getContents());
                break;

                case 2:
           if (FileOpen == true){
                    display(f.getLines(), (f.getWords() - f.getNumber()), f.getChars(), f.getNumber());
              }
              else
              display("Must open file first", "ERROR");
                break;

           case 3:
                    if (FileOpen == true){
              String key = input();
                    display(f.Search(key));
              }
              else
              display("Must open file first", "ERROR");
                break;

                case 4:
                    done = true;
                break;


                default:
                    display("This option is underfined", "Error");
                break;
            }
       }
       catch(NumberFormatException | NullPointerException | IOException e)
       {
            display(e.toString(), "Error");
       }
    }

1 个答案:

答案 0 :(得分:0)

空引用有四种可能性。

 1. FileOpen - might be null
 2. input() - might throw null
 3. f - might be null
 4. display() - might throw null

逐步检查抛出npe的内容,只需在调试器中执行即可。