Zum Hauptinhalt springen

else und finally bei Ausnahmen

else – nur wenn kein Fehler

try:
n = int(input("Zahl: "))
except ValueError:
print("Ungueltig")
else:
print(f"Super, {n} ist gueltig.")

else läuft, wenn try ohne Fehler durchkam.

finally – immer

try:
n = int("3")
except ValueError:
print("Fehler")
finally:
print("Dieser Teil kommt immer.")

Gut für Aufräumen (später bei Dateien nützlich). Am Anfang selten zwingend.

Rate mal!

try:
print(1)
except ValueError:
print(2)
else:
print(3)
finally:
print(4)
Auflösung
1
3
4

Probiere es selbst

Experiment 1

try/except/else mit int-input.

Experiment 2

finally-Zeile beobachten.

Experiment 3

Vergleiche mit und ohne else.

Übungen

Level 1

Erkläre else in einem Satz.

Level 2

Baue int-Eingabe mit else-Erfolgsmeldung.

Level 3

try/except/else/finally in einem Mini-Demo.

Level-2-Lösung
try:
x = int(input("x: "))
except ValueError:
print("Fehler")
else:
print("Alles gut:", x)

Mini-Quiz

Mini-QuizWann laeuft der else-Block nach try?

Feinschliff sitzt! Mini-Projekt: Sicherer Rechner.