web-dev-qa-db-ja.com

エラー:報告されていない例外FileNotFoundException;キャッチするか、スローするように宣言する必要があります

文字列をテキストファイルに出力する簡単なプログラムを作成しようとしています。ここで見つけたコードを使用して、次のコードを作成しました。

import Java.io.*;

public class Testing {

  public static void main(String[] args) {

    File file = new File ("file.txt");
    file.getParentFile().mkdirs();

    PrintWriter printWriter = new PrintWriter(file);
    printWriter.println ("hello");
    printWriter.close();       
  }
} 

J-graspから次のエラーがスローされます。

 ----jGRASP exec: javac -g Testing.Java

Testing.Java:10: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
    PrintWriter printWriter = new PrintWriter(file);
                              ^
1 error

 ----jGRASP wedge2: exit code for process is 1.

私はJavaにかなり慣れていないので、これが何を意味するのか分かりません。誰かが私を正しい方向に向けることができますか?

11
user2956248

ファイルが存在しない場合、FileNotFoundExceptionがスローされる可能性があることをコンパイラーに通知していません。また、FileNotFoundExceptionがスローされます。

これを試して

public static void main(String[] args) throws FileNotFoundException {
    File file = new File ("file.txt");
    file.getParentFile().mkdirs();
    try
    {
        PrintWriter printWriter = new PrintWriter(file);
        printWriter.println ("hello");
        printWriter.close();       
    }
    catch (FileNotFoundException ex)  
    {
        // insert code to run when exception occurs
    }
}
9
06needhamt

Javaを初めて使用する場合で、PrintWriterの使用方法を学習しようとしている場合は、以下の基本的なコードがあります。

import Java.io.*;

public class SimpleFile {
    public static void main (String[] args) throws IOException {
        PrintWriter writeMe = new PrintWriter("newFIle.txt");
        writeMe.println("Just writing some text to print to your file ");
        writeMe.close();
    }
}

PrintWriterは、ファイルに問題がある場合(ファイルが存在しない場合など)に例外をスローする場合があります。追加する必要があります

public static void main(String[] args) throws FileNotFoundException {

次に、try..catch句をコンパイルして使用し、例外をキャッチして処理します。

つまり、new PrintWriter(file)を呼び出すと、例外がスローされる可能性があります。その例外を処理するか、プログラムで例外を再スローできるようにする必要があります。

import Java.io.*;

public class Testing {

    public static void main(String[] args) {

    File file = new File ("file.txt");
    file.getParentFile().mkdirs();

    PrintWriter printWriter;
    try {
        printwriter = new PrintWriter(file);
        printWriter.println ("hello");
        printWriter.close();
    } catch (FileNotFoundException fnfe) {
        // Do something useful with that error
        // For example:
        System.out.println(fnfe);
    }
}
0
SQB