2014-02-20 79 views
0

基本上我正在接受一個表示文件的字符串輸入。該文件可以包含整數,雙精度或隨機字符串。我試圖迭代通過添加所有整數的文件,然後取其中所有的整數。我遇到的問題是當我得到一個不是整數的東西時。我不知道該如何捕捉和處理錯誤,然後迭代到文件的下一部分。我不能使用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; 

}

回答

0

Scanner#nextInt可以拋出

InputMismatchException時 - 如果下一個標記不匹配整數的正則表達式,或超出範圍
NoSuchElementException異常 - 如果輸入被耗盡
IllegalStateException - 如果此掃描器已關閉

試試這個 -

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

啊做得好好先生 – user2059856