如果找不到文件,请尝试结束程序

时间:2011-03-16 02:40:59

标签: java

如果if语句返回该文件不存在,我试图终止程序。目前方法是

public static void calcMarks() 
  {
      String Assessment1 = null, Assessment2 = null, Assessment3 = null;
      int mark1 = 0,mark2 = 0,mark3 = 0,sum = 0;
       try {
       File doc = new File ("marks.txt");
       if(!doc.exists())
       {
        System.out.println ("Marks.txt Does Not Exist");
        System.exit(); 
       }
       if(!marks.exists())
       {
         System.out.println ("TotalMarks.txt Does Not Exist");
         System.exit(); 
       }
       Scanner input = new Scanner(doc);
         while (input.hasNext()){
          Assessment1 = input.next();
          mark1 = input.nextInt();
          Assessment2 = input.next();
          mark2 = input.nextInt();
          Assessment3 = input.next();
          mark3 = input.nextInt();

        }  
      input.close();
      sum = mark1 + mark2 + mark3;
      System.out.println(Assessment1 + " "  +mark1  +"\n"+  Assessment2  + " "+mark2 +"\n"+  Assessment3  + " "+mark3+ "\n" + "Total" +""+ "=" + sum);
    }
    catch (FileNotFoundException ex) {
      System.err.println("File has not been found");
    } 

     }

但是在System.exit()上;是if语句,我在Jaba.lang.system中得到错误exit(int)。不能应用于()

我不知道这意味着什么

7 个答案:

答案 0 :(得分:3)

您需要在exit()方法中传递返回值。 最理想的是,您应该System.exit( 0 );

您可以阅读this

答案 1 :(得分:1)

您必须将状态代码(作为整数)传递给System.exit()方法。这种方法没有参数版本。

The method's documentation

  

终止当前运行的Java虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。   此方法在类Runtime中调用exit方法。此方法永远不会正常返回。

     

参数:状态 - 退出状态。

答案 2 :(得分:0)

您需要传递返回代码才能退出。请查看java.lang.System的文档。 System.exit(-1);应该有用。

答案 3 :(得分:0)

您需要输入一个整数作为System.exit的参数。

System.exit(0);

System.exit(1);  

答案 4 :(得分:0)

我不是Java程序员,但在我看来,System.exit()应该有一个退出代码。试试这个:

System.exit(0);

答案 5 :(得分:0)

System.exit(int)需要一个整数参数:

System.exit(1);

操作系统期望Exit Status向生成程序的程序报告。

进一步的挑剔:你循环输入,将其存储到变量中,然后在循环结束之前不对这些变量执行任何操作。除了最后一次输入你的日常工作外,你将丢掉所有。因此,当你去寻找那个bug时,你会知道在哪里看。 :)

答案 6 :(得分:0)

如果我没记错,必须将参数传递给。这可以作为调试工具,因此您可以轻松地告诉哪个部分强制程序退出。无需打印任何东西。一般来说,任何成功退出都会使用0,程序员使用任何其他预定值作为“错误代码”。因此,如果没有任何进一步的探索,您可能希望将退出调用更改为以下内容:

System.exit(0); //This would be for a programming successfully running and exiting.
or
System.exit(X); //Where x is any int to signal a program failure