2017-08-06 10 views
-5

テストコードのファイルでオブジェクトをインスタンス化しようとすると、報告されていないFileNotFoundExceptionのエラーが発生しています。私が使用/作成しているクラスはコンストラクタ(ただ一つのコンストラクタ)にFileNotFoundExceptionを持っていますので、なぜオブジェクトを宣言するときに追加のFileNotFoundを要求されているのか分かりません。FileNotFoundExceptionが報告されていません

//Constructor 
    public readFile(File file)throws FileNotFoundException { 
    //do i need to create a file object here? 
      Scanner inScanFile = new Scanner(file); 
     } 

    ///////////Running Code from JUNIT below////////////// 
     public void Empty(){ 
      File testFile = new File("HARRY_POTTER_TRIVIA.txt"); 
      ReadingClass newReadtest = new ReadingClass(testFile); //Error occurs here 
+1

ええと...「ファイルが見つかりません」のどの部分がわかりませんか? – JohnG

+0

'Scanner inScanFile = new Scanner(file);'は絶対パスでファイルを検索しようとしていますが、そのファイルは存在しないため、例外がスローされます。 –

+0

クラスにFileNotFoundExceptionがある場合、そのクラスを使用してオブジェクトをインスタンス化するときに、追加のFileNotFoundExceptionを含むように報告されない例外が発生するのはなぜですか。 – samgrey

答えて

0
public readFile(File file)throws FileNotFoundException { 
//do i need to create a file object here? 

ない、なぜ?あなたはすでにそれを持っています。

 Scanner inScanFile = new Scanner(file); 

これは、このコンストラクタはそれをキャッチしたり、それをスローすることを宣言し、またはその基底クラスの1つにどちらか持っている理由である、FileNotFoundExceptionを投げることができます。 readFile()はそう、FileNotFoundExceptionを投げることができるためだ

} 

///////////Running Code from JUNIT below////////////// 
    public void Empty(){ 
     File testFile = new File("HARRY_POTTER_TRIVIA.txt"); 
     ReadingClass newReadtest = new ReadingClass(testFile); //Error occurs here 

、再び、あなたはそれをキャッチしたり、あなたがそれを投げることを宣言し、またはその基底クラスの1つにどちらかがあります。

+0

これはもっと理にかなっていますが、readFile()がコンストラクタによって捕捉されない例外をどのようにスローできるかはわかりません。存在しないファイルオブジェクトを作成すると、javaはまだコンパイルされます。 – samgrey

関連する問題