Java catch IOException
Ich denke, das ist basic stuff, aber ich bin mir nicht sicher, was zu tun ist. Warum bekomme ich IOException never thrown in body of corresponding try statement
public static void main(String[] args)
{
File inputFile = null ;
try
{
inputFile = new File("records.txt") ;
}
catch (IOException e)
{
System.out.print("file not found!") ;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den File-Konstruktor an und für sich nicht viel tun.
Es ist nicht, bis Sie tatsächlich beginnen tut die tatsächlichen Vorgänge, die IOExceptions geworfen werden kann.
Es nie wirft eine IOException. Erstellen Sie eine Datei-Objekt nicht verbinden Sie es mit nichts auf der Festplatte. Das heißt, es gibt keine IO.
Wenn Sie versuchen, Lesen oder schreiben aus einer Datei-Objekt, das nicht über eine entsprechende Datei auf der Festplatte erhalten Sie IOExceptions. Wie, wenn Sie versuchen, getCanonicalPath aus einer Datei, die nicht tatsächlich auf der Festplatte.
Weil Sie instanziieren können Datei Objekt mit einer beliebigen Zeichenfolge, die Sie wollen. Sie erhalten die Ausnahme-später, wenn Sie versuchen zu Lesen /schreiben /öffnen der eigentlichen Datei.
- Datei(String)
nicht werfenIOException
, so können Sie nicht fangen einen auf, die Zeit.Wenn Sie möchten, um zu überprüfen, ob eine Datei vorhanden ist, mit
file.exists()
. Abgesehen davon:nie schlucken Ausnahmen - immer melden Sie der stacktrace oder rethrow die Ausnahme (den Umschlag in eine exception zur Laufzeit, zum Beispiel)
verlassen Sie sich nicht auf die Ausnahmebehandlung für den Programm-Ablauf - diese sollte Ausnahmefällen.
file.exists
und fordern Sie (sagen)file.open
, die Datei wurde möglicherweise (sagen) gelöscht. Wenn Sie stattdessen an, dass die Datei existiert und versuchen es zu öffnen, die exception zu fangen sonst werden Sie keine dieses Problem.