package test4;
import java.io.*;
public class Reader {
public static void main(String[] args) {
print(send("test.txt"));
}
public static BufferedReader send(String filename) {
File file = null;
FileReader filer = null;
BufferedReader filed = null;
try {
file = new File(filename);
} catch(FileNotFoundException e) {
System.err.println("Could not find file!");
}
try {
filer = new FileReader(file);
} catch(Exception e) {
System.err.println("Could not initialize file reader!");
}
try {
filed = new BufferedReader(filer);
} catch(Exception e) {
System.err.println("Could not initialize buffered reader!");
}
return filed;
}
}
sendメソッドは、Fileが見つからないため、BufferedReaderをnullに返します。 EclipseにはprintメソッドのためにNullPointerExceptionがあると言われていますが、try/catchステートメントをすべて削除すると、メソッドはIOExceptionまたはFileNotFoundExceptionをスローするように書く必要があります。それはFileNotFoundExceptionをスローしません。しかし、私がファイルのFileNotFoundExceptionをキャッチしようとすると、Eclipseは到達不能なコードであると言いますか?ここでは基本的にはこのビット:なぜこのFileNotFoundExceptionをキャッチできないのですか?
try {
file = new File(filename);
} catch(FileNotFoundException e) {
System.err.println("Could not find file!");
}
なぜEclipseは、このコードは、ちょうどのtry/catch文を削除するときに到達不能である私はにFileNotFoundExceptionをスローすることを可能にすることを言いますか?
新しいファイル(ファイル名)が '' FileNotFoundException'をスローしません '、あなたが'作成するために許可されています。あなたは
FileNotFoundException
をキャッチしたい場合は、ファイルが存在しない場合、あなたはこのような何かを行うことができます既存の物理ファイルが存在しないファイル( 'exists()'が存在する理由です)。 – Berger