如何处理扫描程序异常

时间:2014-02-20 05:14:49

标签: java

基本上我正在使用表示文件的字符串输入。该文件可以包含整数,双精度或随机字符串。我试图遍历文件添加所有整数,然后取所有整数的平均值。我坚持的问题是当我得到一个整数以外的东西。我不知道我应该如何捕获并处理错误,然后迭代到文件的下一部分。我不能使用if语句而且我完全陷入困境。

 String storeVariables = null;
  FileReader fileReader;
  BufferedReader bufferedReader;
  Scanner scanner = null;
  int total = 0;
  int itterate = 0;


  try{
      fileReader = new FileReader(filename);
      bufferedReader = new BufferedReader(fileReader);
      scanner = new Scanner(bufferedReader);

      while(scanner.hasNextInt()){
          total += scanner.nextInt();

          itterate++;
      }

  }
 catch(Exception e){


 }       

  return total/itterate;

}

1 个答案:

答案 0 :(得分:0)

Scanner#nextInt可能会抛出

InputMismatchException - 如果下一个标记与整数正则表达式不匹配,或者超出范围
NoSuchElementException - 如果输入用尽了 IllegalStateException - 如果此扫描程序已关闭

试试这个 -

while(scanner.hasNextInt()){
   try{
          total += scanner.nextInt();
          itterate++;
   }catach(RuntimeException nfe){...}
}