Hallo,
danke für die Klärung. Das ganze hakt also in der Zuweisung. Klingt logisch. Die Konstruktion try-except-else habe ich jetzt auch nachgesehen; die war mir nicht bekannt.
try:
foo_object = foo()
except RuntimeError, strerror:
print strerror
else:
foo_object.do_something()
Also wird die Methode do\_something nur dann aufgerufen, wenn die Zuweisung an foo\_object erfolgreich durchgeführt wurde.
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.
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.
Puh, ich hoffe, das stimmt jetzt so...
Nochmal vielen Dank an die Helfenden!
Viele Grüße
cookie