2015-02-16 4 views
-2

Я пытаюсь использовать инструкцию try catch после импорта файла и продолжать получать и ошибки в catch (FileNOtFoundException e). Он сообщает, что исключение никогда не выбрасывается из инструкции try тело и удалить его из тела.Обработка исключений: Операторы try-catch в Java

//import scanner needed for input dialog 
import java.util.Scanner; 
import java.io.*; 
import java.util.InputMismatchException; 
import java.text.NumberFormat; 


    public class Lab5{ 
     public static void main(String[]args) throws FileNotFoundException{ 
      NumberFormat fmtCurr = NumberFormat.getCurrencyInstance(); 
      Scanner kb = new Scanner(System.in); 

     //Get the filename 
       String fileName = null; 
       File inputFile = new File(fileName); 
       Scanner file = new Scanner(inputFile); 
       boolean invalid; 
      do{ 
       System.out.print("Data file of prior internet usage: ") 
       try{ 
        double avg; 
        double paid; 
        double total; 
        System.out.println("Usage history:"); 
        while (file.hasNextLine()){ 
         avg = file.nextDouble(); 
         paid = file.nextDouble(); 
         total = file.nextDouble();   
         System.out.println("Average Hours Used:" + avg); 
         System.out.println("Average Paid:" + fmtCurr.format(paid)); 
         System.out.println("Total Paid:" + fmtCurr.format(total)); 
        } 
        invalid = false; 
       } 

      catch(FileNotFoundException e) 
       { 
       System.out.print("file does not exist"); 
       invalid = true; 
       } 
      } 

      while(invalid = true); 



    } 
} 
+0

Вещь, которая может вызывать «FileNotFoundException», - это «новый сканер (inputFile)». – immibis

+0

Какая строка внутри вашего утверждения try вы думаете, может бросить «FileNotFoundException»? – csmckelvey

ответ

0

try блока должен содержать строки, которая может бросить исключение, которое в данном случае является Scanner file = new Scanner(inputFile); линией. Если вы перемещаете эту строку внутри блока try, тогда она будет перехватывать исключение, если оно будет выбрано.

0

Это говорит мое исключение никогда не выброшен из тела попытка заявление ...

Да, это говорит вам точную проблему. java.io.FileNotFoundException не выбрасывается никакими строками кода в вашем блоке try.

Основываясь на том, что делает ваш код, похоже, вы хотели поймать java.util.InputMismatchException.

  catch (InputMismatchException e) // not FileNotFoundException 
      { 
       System.out.print("Invalid double input"); 
       invalid = true; 
      } 
Смежные вопросы