Try-Block: "finally" vs. "else"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
HarteWare
User
Beiträge: 69
Registriert: Samstag 23. Februar 2013, 21:16
Wohnort: localhost

Hallo zusammen,

ich habe eine kleine Frage:

Macht es einen unterschied, ob ich in einem Try block "finally" oder "else" schreibe, um den darauf folgenden code auszuführen, wenn keine Exceptions kamen, und wenn ja welcher?

Bsp:

Code: Alles auswählen

try:
   foo
except Foo:
    bar
else:  # vs. finally:
    Bar
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Der else-Zweig wird ausgeführt, sofern keiner der vorhergehenden except-Zweige ausgeführt wurde. Der finally-Zweig wird in jedem Fall ausgeführt. Mehr dazu hier: http://docs.python.org/3/reference/comp ... -statement.
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Fuer das Big Picture: Der `else`-Zweig von `try` ist vergleichbar mit dem von Schleifen. `else` wird dort ausgefuehrt, wenn die Schleife "normal" (d.h. nicht durch `break` oder Exceptions) verlassen wird.
Benutzeravatar
HarteWare
User
Beiträge: 69
Registriert: Samstag 23. Februar 2013, 21:16
Wohnort: localhost

Hi,

vielen Dank, hat sich erledigt!

lg
Antworten