Seite 1 von 1

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

Verfasst: Mittwoch 25. Dezember 2013, 12:15
von HarteWare
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

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

Verfasst: Mittwoch 25. Dezember 2013, 13:01
von pillmuncher
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.

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

Verfasst: Mittwoch 25. Dezember 2013, 13:14
von cofi
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.

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

Verfasst: Mittwoch 25. Dezember 2013, 13:18
von HarteWare
Hi,

vielen Dank, hat sich erledigt!

lg