Zitat von
Christian Seehase:
Moin Muetze,
Zitat von
Muetze1:
Zitat von
Christian Seehase:
Mit try/except sollte man nur dann arbeiten, wenn es wirklich nicht anders geht.
Warum? Ich hätte hier auch gerne eine Begründung zu dieser Aussage.
Wie der Name schon sagt, handelt es sich hier um eine Ausnahme, demzufolge finde ich es einfach sauberer mögliche Fehlerbedingungen selber zu prüfen, als es "drauf ankommen zu lassen", und die Programmsteuerung durch Exceptions zu regeln.
Zudem dauert die Verarbeitung einer
Exception IMHO relativ lange, und wenn man sich erst einmal daran gewöhnt hat alle möglichen Fehlerbedingungen nicht selber zu prüfen, könnte es sich auch negativ auf das Laufzeitverhalten auswirken.
Exceptions verlangsamen ein Programm nicht, solange sie nicht ausgelöst werden. Und sie haben gegenüber klassischem Returncode-basierten Fehlerstatus-Behandlungen Vorteile. Man muss keine speziellen Returnwerte für Fehlerstati reservieren, und sie können mehr Informationen zum Fehlerkontext transportieren.
Manchmal ist eine Behandlung eines Fehlers auch nicht allgemeingültig möglich, z.B. wenn die gleiche Funktion mal in einer
GUI, in einem Batchjob oder einem Webservice verwendet wird. Statt
if GUIVorhanden then Benutzerfragen ... else
kann man dann einfach die
Exception werfen und die konkrete Anwendung der Funktion entscheidet, wie sie mit der Fehlersituation umgehen möchte.