„This parrot is no more! He has ceased to be! … This is an ex-parrot!“
— Dead Parrot · Flying Circus, 1969
Statt zu crashen — Fehler abfangen und sauber weitermachen.
Konzept
Mit try / except fängst du Fehler ab. Der Code im try-Block läuft.
Falls dabei ein Fehler kommt, läuft der except-Block statt
abzustürzen.
try:
zahl = int(input("Alter? "))
print(f"In 10 Jahren bist du {zahl + 10}.")
except ValueError:
print("Das war keine Zahl.")
Wenn der User „dreissig" tippt, gibt es einen ValueError bei int(...).
Statt eines Tracebacks läuft der except-Block — eine ordentliche
Meldung.
Mehrere Fehler-Typen abfangen:
try:
ergebnis = 10 / zahl
except ZeroDivisionError:
print("Nicht durch 0 teilen.")
except ValueError:
print("Keine gültige Zahl.")
Das nackte except: ohne Typ fängt alles ab — und versteckt
dadurch oft echte Bugs. Lieber den konkreten Typ benennen.
Achtung: try / except ist kein Allheilmittel. Nutze es für
erwartbare Fehler (ungültige User-Eingabe, fehlende Datei). Bugs
in deinem Code solltest du fixen, nicht abfangen.
Live-Code
Erwartete Ausgabe:
„dreissig" ist keine Zahl.
Übung
Fang einen ZeroDivisionError ab und gib „Nicht durch 0 teilen!" aus.
Quiz
Wann nutzt man try / except sinnvoll?
- [ ] Bei jedem Code, der eventuell crashen könnte
- [x] Für erwartbare Fehler wie ungültige User-Eingaben
- [ ] Statt
if-Verzweigungen
Modul 7 — Wenn was schiefgeht. Fragen zur Lesson? Der KI-Tutor unten rechts kennt deinen letzten Run.