dedlfix: (PYTHON) Exception in __init__ - Objekt erzeugt oder nicht?

Beitrag lesen

echo $begrüßung;

Die Konstruktion try-except-else habe ich jetzt auch nachgesehen; die war mir nicht bekannt.
Zusammengefasst:
try enthält den Code, der Ausnahmen auslösen könnte.
except enthält den Code, der ausgeführt wird, falls tatsächlich eine Ausnahme ausgelöst worden ist.
else enthält den Code, der nur dann ausgeführt wird, wenn keine Ausnahme ausgelöst worden ist.
finally enthält den Code, der auf jeden Fall nach dem except-Block bzw. else-Block ausgeführt wird, egal ob eine Ausnahme ausgelöst worden ist oder nicht.

Stimmt so. Das else in der try-Anweisung ist eine Python-Besonderheit. Vermutlich liegt sein Hauptzweck nur der übersichtlicheren Code-Notation, denn im Prinzip könnte man die abhängigen Zugriffe auch im try-Block notieren.

try:
    objekt = initialisierung
    objekt.tuwas()
  except ...:
    pass

Mir will irgendwie kein Anwendungsfall einfallen, der zwar mit else, nicht aber ohne es notiert werden kann. Deine erste These kann man auch so formulieren:
try enthält den Code, der Ausnahmen auslösen könnte, und den Code, der von einer fehlerfreien Ausführung abhängig ist (sofern man ihn nicht unter else notiert).

finally und else schließen sich übrigens gegenseitig aus, wenn man Python in einer Version kleiner als 2.5 verwendet.

Der Code, der eventuell auf die gesamte try-(except-else-finally)-Konstruktion folgt, wird dann ausgeführt, wenn keine Ausnahme ausgelöst worden ist oder die Ausnahme erfolgreich behandelt wurde.

Das Behandeln der Exception ist nebensächlich. Hauptsache ist, dass sie erfolgreich gefangen wurde (und nicht erneut oder irgendeine andere ausgelöst wurde).

echo "$verabschiedung $name";