FileNotFoundExcpetionに関する質問があります。私が持っているインターフェイスは、「throws FileNotFoundExcpetion」を含むメソッド名を定義しています。FileWriterでtry catchを使用する
public static void writeAssignment(ArrayList<String> assignment, String filename) throws FileNotFoundException {
try {
FileWriter writer = new FileWriter(filename);
for (String str : assignment) {
writer.write(str + "\n");
}
writer.close();
} catch (IOException e) {
System.err.print("Something went wrong");
}
}
これは例外を処理する正しい方法ですか?私がファイルライターで作成しているファイルに書き込んでいるときに、メソッドでファイルを作成していると、ファイルが見つからない可能性がありますか?
あなたの関数は決して 'FileNotFoundException'をスローしません。あなたはそれをキャッチしているので、' throws FileNotFoundException'として宣言するのは意味がありません。 – tkausl
'FileNotFoundException'は少し誤解を招く名前です。ここでは、ファイルを作成できなかったときにスローされます。その答えは、FileNotFoundExceptionが実際にはIOExceptionであるため、単純にIOExceptionをスローする必要があることに言及します。それを呼び出し側に任せて、何か破壊的なものを処理してください。 –
私は間違っているかもしれませんが、提供されたパスが存在しないシナリオはどうですか?例 'E:\ abc'がありますが、Eドライブがシステムにマウントされていませんか? – CKing