Ich arbeite gerade an einem Projekt und bin auf ein bisschen Kopfzerbrechen gestoßen. Ich programmiere seit etwa zwei Jahren in Java und habe Ausnahmen behandelt, aber nie richtig verstanden.Wo ich mit einer Exception umgehen kann
In meiner jetzigen Situation Ich habe meine Hauptmethode bekam, die eine Klasse
WikiGraph wiki = wiki = new WikiGraph(getFile());
Der Wikigraph Konstruktor nimmt einen Dateinamen, die ich über eine DialogBox im getFile()
Verfahren erhalten initialisiert.
Der Konstruktor für Wikigraph ruft dann eine Methode namens loadfile(filename)
, die versucht, die angegebene Datei zu laden und zu analysieren.
Die loadfile()
Methode ist, wo ich einen IncorrectFileTypeError werfen werde.
Meine Frage ist, wo soll ich damit umgehen?
Im Moment arbeite ich fangen sie in der loadfile()
Methode
try {
//load file
} catch (IncorrectFileTypeError e){
System.out.println("Incorrect file type: "+filename+": "+e.getMessage());
throw new IncorrectFileTypeError();
}
Aber ich es auch wie so bei der WikiGraph Initialisierung fangen:
while(wiki==null){ //While There is no valid file to add to the wikigraph
try {
wiki = new WikiGraph(getFile()); //Try to load file
} catch (IncorrectFileTypeError e) { //If file cannot be loaded
JOptionPane.showMessageDialog(null, "Incorrect File Type Given. Please Choose another file."); //Display error message
getFile(); //Prompt user for another file
}
}
Nun ist die Art, wie ich den Fehler behandelt haben der richtige/beste Weg? Oder sollte es anderswo behandelt werden, wie in der getFile()
Methode?
EDIT: Ich nehme an, ich sollte das Dateiproblem etwas klarer machen. Die Dateierweiterung basiert nicht auf dem IncorrestFileTypeError und kann daher ein irreführender Fehlername sein. Die angegebene Datei kann so ziemlich jede Erweiterung haben, deren Inhalt gut geformt sein muss.
Dies ist eine subjektive Ansicht der Handhabung von Ausnahmebehandlung. Ich würde dies in das Community-Wiki setzen – Ascalonian