"Missbrauch" von Exception zum Stoppen des Programmsflusses

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich lasse gerne JVM eine Benutzer-Exception werfen aus einem catch-Klausel:7
Code:
...
try {
leseFile(pfad);
} catch (FileNotFoundException e) {
System.out.println("Datei kann nicht gelesen werden" + e.printStackTrace());  
throw new RatnasException();
}
...

Da ich RatnasException überall in meiner Anwendung einsetze, komme ich nie auf die Idee, sie zu behandeln. So wird diese Exception einfach weiter nach oben bis zu main-Method gereicht.

Ich habe demnächst einen Termin zum Code-Review, ich habe ein bisschen Angst, dass dieser Stil, "Programmfluss zu beenden, wenn eine gewollt nicht zu behandelnde Exception auftaucht" ein Bad-Smell darstellt.:oops:

Ich frage mich, ob dieser Stil akzeptabel ist oder gibt es vielleicht triviales Pattern für den Zweck?

Vielen Dank für Eure Kommentare.

Viele Grüße aus Rheinland,

Eure Ratna:)
 
Hi,

ich würde sagen, dass kommt auf die Art des Fehlers an und darauf, was von dem Programm erwartet wird.
In deinem Beispiel wäre wohl eine Fehlermeldung sinnvoller - jedenfalls wenn die Datei von dem User ausgewählt wurde.
Nur wenn etwas wirklich unerwartetes passiert, sollte das Programm beendet werden, denke ich mal - am besten mit Log.
Kann aber nur aus eigener Erfahrung und persönlichen Präferenzen berichten ;)

Schöne Grüße

PS: "gewollt nicht zu behandelnde Exception" scheint keine Alternative zu bieten als Exit mit Fehlerwert
 
In einem Pythonforum stand letztens ein Artikel, das unbehandelte Exceptions das schlimmste sind was ein Programmierer machen kann. Ich habe den Artikel nicht ganz gelesen, aber eins ist klar: Eine Exception nicht zu behandeln führt das Konzept vollständig ad absurdum. Es ist ja kein Problem, wenn du eine solche Exception durchreichst bis zu main, aber dort solltest du es dann abarbeiten, also typischerweise offene Dateien schließen, Arrays deallokieren, pointer nullifyen u.ä. (je nach Sprache) und mit einer sinnvollen Meldung/Fehlercode beenden.
 

Neue Beiträge

Zurück