„I'm not dead yet! — You're not fooling anyone, you know.“
— Holy Grail · Film, 1975
Du kennst Fehlermeldungen schon. Jetzt liest du sie wie ein Krimi.
Konzept
Eine Fehlermeldung in Python heisst Traceback — sie zeichnet den Weg nach, den dein Programm bis zum Fehler gegangen ist.
Aufbau (von oben nach unten gelesen):
- Eine Liste von „Frames" — jeder Frame ist ein Funktions-Aufruf, mit Datei und Zeile.
- Ganz unten: der Fehler-Typ und die Nachricht.
Beispiel:
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
File "<stdin>", line 2, in halbieren
ZeroDivisionError: division by zero
Wie liest du das? Von unten nach oben. Die letzte Zeile sagt was
schiefging (ZeroDivisionError). Die Frames darüber sagen wo —
zuerst der innerste Aufruf, dann seine Aufrufer.
Die zwei Faustregeln:
- Der Fehlertyp (letzte Zeile) ist die wichtigste Info.
- Die erste Zeile in deinem Code (nicht in der Standard-Bibliothek) ist der wahrscheinlichste Verursacher.
Achtung: Manche Fehler entstehen weit oben, schlagen aber unten zu. Beispiel: ein falscher Datentyp wird viele Funktionen tief weitergereicht, bis er irgendwo platzt. Traceback hilft, die Kette rückwärts zu verfolgen.
Live-Code
Lass das mal absichtlich crashen, um den Traceback zu sehen:
Erwarteter Traceback:
Traceback (most recent call last):
File "<exec>", line 7, in <module>
File "<exec>", line 5, in doppeln_und_halbieren
File "<exec>", line 2, in halbieren
ZeroDivisionError: division by zero
Übung
Lies den Traceback oben und sag (als Kommentar in deinem Code), in welcher Zeile der Fehler tatsächlich passiert ist.
Quiz
In welcher Reihenfolge liest man einen Traceback am besten?
- [ ] Von oben nach unten, Zeile für Zeile
- [x] Erst die letzte Zeile (Fehlertyp), dann nach oben
- [ ] Egal — alles ist gleich wichtig
Modul 7 — Wenn was schiefgeht. Fragen zur Lesson? Der KI-Tutor unten rechts kennt deinen letzten Run.