Java-Exception-Handling
Ich soll ein Beispielprogramm zu erstellen, die für das exception handling für Dateioperationen für meine java-Zuordnung. Ich habe Probleme beim Verständnis, da ich ein C++ - Typ. Es wäre wirklich sehr hilfreich, wenn jemand könnte darauf hinweisen, den Fehler in meinem code unten. Ich beziehe mich diese Artikel. Eclipse ist mir "nicht erreichbar catch-block für die FileNotFoundException. Diese exception wird nie geworfen, aus der try-Anweisung Körper" Fehler.
import java.io.*;
public class file {
public static void main(String[] args) {
String arg1 = args[0];
String arg2 = args[1];
System.out.println(arg1);
System.out.println(arg2);
File f1, f2;
try {
f2 = new File(arg2);
f1 = new File(arg1);
}
catch(FileNotFoundException e) {
/*
if(!f1.exists()) {
System.out.println(arg1 + " does not exist!");
System.exit(0);
}
if(!f2.exists()) {
System.out.println(arg2 + " does not exist!");
System.exit(0);
}
if(f1.isDirectory()) {
System.out.println(arg1 + " is a Directory!");
System.exit(0);
}
if(f2.isDirectory()) {
System.out.println(arg2 + " is a Directory!");
System.exit(0);
}
if(!f1.canRead()) {
System.out.println(arg1 + " is not readable!");
System.exit(0);
}
if(!f2.canRead()) {
System.out.println(arg2 + " is not readable!");
System.exit(0);
}*/
}
}
}
- In Zukunft bitte die code in deiner Frage.
- sorry, ich werde es mir merken.
- Bitte Lesen Sie auch gründlich über die Java -
checked
undunchecked
erwartet. Die ersten, die Erben vonException
Klasse letztere ausRuntimeException
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf die Dokumentation für die
File
constructor, die Sie aufrufen. Die nur Ausnahme deklariert zu werfen istNullPointerException
. Daher ist es nicht werfenFileNotFoundException
, das ist, warum Sie immer die Fehler. Sie können nicht versuchen zu fangen eine geprüfte Ausnahme, die der compiler beweisen kann, ist nie geworfen, die innerhalb des entsprechendentry
block.Erstellen einer
File
Objekt überprüft nicht für seine Existenz. Wenn Sie Eröffnung die Datei (z.B. mitnew FileInputStream(...)
dann , dass werfen könnteFileNotFoundException
... aber nicht nur die Schaffung einesFile
Objekt.FileInputStream
mit der entsprechenden Datei.isDirectory
- Methode. Wenn es ein Verzeichnis drucken, was Sie drucken müssen.Dies ist der Konstruktor der Klasse
File
mit einem argumentwirft nur eine Ausnahme und das ist
NullPointerException
. Ihr code versucht zu fangenFileNotFoundException
welche nichtNullPointerException
- und dies ist der Grund, warum Sie diese Fehlermeldung in Eclipse.Einen Weg zu gehen, ist zu fangen Sie die Ausnahmen der Klasse
Exception
ist diesuper
Klasse für alle Ausnahmen in Java. Ein anderer Weg ist, fangen alle Ausnahmen (jeweils in unterschiedlichencatch
block), dass das aufgerufene Konstrukt wirft (die können leicht gewonnen werden, indem Sie über die API). Der Dritte Ansatz ist, fangen nur die Ausnahmen (wieder die eigentlich ausgelöst durch das Konstrukt), der Sinn Ihrer Anwendung und ignoriert die anderen.