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;
}
}
Die send-Methode gibt einen null BufferedReader zurück, da die Datei nicht gefunden werden kann. Eclipse sagt nur, es gibt eine NullPointerException wegen der print-Methode, aber wenn ich alle try/catch-Anweisungen entferne, sagt Eclipse, dass ich schreiben muss, dass die Methode entweder eine IOException oder FileNotFoundException auslöst, erlaubt mir dies auch, und wenn ich Dann löst es keine FileNotFoundException aus. Wenn ich jedoch versuche, eine FileNotFoundException für die Datei abzufangen, sagt Eclipse, dass dies nicht erreichbarer Code ist? Grundsätzlich ist dieses Bit hier:Warum kann ich diese FileNotFoundException nicht abfangen?
try {
file = new File(filename);
} catch(FileNotFoundException e) {
System.err.println("Could not find file!");
}
Warum Eclipse-sagen, dass dieser Code nicht erreichbar ist, wenn nur das Entfernen der try/catch-Anweisungen ermöglicht es mir, eine FileNotFoundException zu werfen?
'neue Datei (Dateiname)' 'eine FileNotFoundException' nicht werfen, werden Sie erstellen erlaubt' Dateiobjekte ohne existierende physische Datei (deshalb existiert die Methode 'exists()'). – Berger