1. ホーム
  2. スクリプト・コラム
  3. その他

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

2022-01-01 23:49:07

質問

テキストファイルに文字列を出力したいのですが、以下のようなコードになります。

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();       
  }
} 

チューニングすると、エラーが発生します。

 ----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.

解決方法は?

を投げる可能性があることをコンパイラに伝えていないのです。 FileNotFoundException a 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
    }
}