Zitat von
Treffnix:
Warum try.. except?
Hallo Treffnix,
auch wenn eine Datei mit bekanntem Dateinamen existiert, kann beim Laden ein Fehler auftreten (unbekanntes Format/Endung, fehlerhafte Datei, IO-Fehler, etc).
@meximum: Lagere Deine Ausgaberoutine aus und verwende sie zur Darstellung des überprüfbaren Fehlerquelle und zur Ausgabe eines unerwarteten Fehlers etwa in dieser Art
Delphi-Quellcode:
try
if NotwendigeBedingung(AParam)
then
FuehreAus(AParam)
else
ZeigeFehler(FooConst, AParam);
except
on E:
Exception do
ZeigeFehler(BarConst, AParam, E);
end;
@devnull, Tyrael: Exceptions sind sicher kein Performance-Problem bei Dialogorientierten abläufen und tatsächlich wird mit der vorherigen Prüfung "doppelt getestet" (andernfalls könnte ja keine
Exception geworfen werden).
Dieser Stil allerdings macht die Intention des Programmierers undeutlich. Denke bspw an das Lösen einer Wurzel im Reelen: Eine Fallunterscheidung macht deutlich, was gemeint ist, eine
Exception verwirrt. Bei ungleich komplexeren Problemen ist der Code eines Fremden nicht mehr zu verstehen, weil Fehlerquelle und -behandlung zu weit voneinander entfernt sind...
Vielleicht hilft auch
dieser Thread oder der Artikel
Brian Goetz, Exceptional practices, Part 1-3 weiter...