私はthrows FileNotFoundException
をテストしようとしています。最初に私のexec.txt
を自分のプロジェクトフォルダに入れて、"testing"
の文字列&をテストしました。プログラムを実行するとうまく動作します。私のキャッチブロックはなぜ機能しませんか?
しかし、main
メソッドのcatch()
部分が機能するかどうかを確認するために、私のexec.txt
ファイルをマイフォルダから削除しましたが、そうではありません。 catch()
の部分のFile not found
はコンソールに表示されません。
import java.io.*;
public class Crashable {
public static void openFile(String f) throws FileNotFoundException {
PrintWriter f1 = new PrintWriter(f);
f1.write("testing");
f1.close();
}
public static void main(String[] args) {
String f = "exec.txt";
try {
openFile(f);
} catch(FileNotFoundException e) {
System.out.println("File not found");
}
}
}
再読み込みPrintWriterコンストラクタのドキュメント: "ファイルが存在する場合はゼロサイズに切り捨てられ、それ以外の場合は新しいファイルが作成されます。"例外は、ファイルを作成できない場合にのみスローされます。 – yshavit