2014-02-20 2 views
0

В основном я беру строковый ввод, представляющий файл. Этот файл может содержать целые числа, удвоения или случайные строки. Я пытаюсь выполнить итерацию файла, добавляя все целые числа, а затем беря среднее значение из всех из них. Проблема, на которую я застрял, - это когда я получаю нечто отличное от целого. Я не знаю, как я должен поймать и разобраться с ошибкой, а затем перебрать на следующую часть файла. Я не могу использовать утверждения, и я полностью застрял.Как справиться с исключением сканера

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 - если следующий маркер не соответствует регулярному выражению Integer или находится вне диапазона
NoSuchElementException - если вход будет исчерпан
IllegalStateException - если этот сканер закрыт

Попробуйте это -

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

ааа хорошо сделано судырь – user2059856

Смежные вопросы