Python Try-Except?

2 Antworten

Naja, davon abgesehen, dass man evtl. dadurch den Code unter Umständen übersichtlicher gestalten kann...

Betrachte mal die folgenden Code-Schnipsel...

Beispiel 1:

a = int(input("a: "))
b = int(input("b: "))
c = int(input("c: "))
try:
    d = a/b
    e = d/c
    print(f"Ergebnis: {e}")
except ZeroDivisionError:
    print("b ist 0 gewesen.")

Beispiel 2:

a = int(input("a: "))
b = int(input("b: "))
c = int(input("c: "))
try:
    d = a/b
except ZeroDivisionError:
    print("b ist 0 gewesen.")
else:
    e = d/c
    print(f"Ergebnis: {e}")

Teste bei den beiden Beispielen beispielsweise mal a = 6 und b = 2 und c = 0. Was fällt dir als Unterschied auf?

Beachte: Das else kann/sollte man nutzen, wenn man den entsprechenden Code-Teil nicht durch das try-except mit schützen möchte. [Wie wenn man hier im Beispiel vielleicht nur eine mögliche Division durch b = 0 abfangen möchte, aber nicht eine mögliche Division durch c = 0 abfangen möchte.]

OK. Man wird hier im Beispiel wohl evtl. auch bei d/c eine Division durch 0 abfangen, aber mir ist spontan kein besseres Beispiel eingefallen. (Auch deshalb, weil ich selbst noch nie in die Situation gekommen bin, wo das tatsächlich einen Unterschied gemacht hätte.)


Wagner154 
Beitragsersteller
 02.09.2022, 20:06

okay, danke

0
try:
   some work
except:
    Handle Error
else:
   return somefunc()

Was passiert mit einer Exception die in somefunc() auftritt. Vergleiche das mal mit:

try:
  some work
  return somefunc()
except:
   Handle Error