Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Fehlermeldungen lesen und lösen

Nach dieser Lektion: Ich kann eine Fehlermeldung lesen und die Lösung finden.

Lektion, 50 Min.Keine Befehle

Ein roter Text um 9 Uhr

Es ist Ihr dritter Arbeitstag. Das Programm der Kasse bricht ab und druckt viele Zeilen in roter Schrift.

Die meisten Neulinge erschrecken und rufen sofort jemanden an. Erfahrene Fachleute lesen erst die Meldung.

In dieser Lektion lernen Sie, wo in diesem Text die Antwort steht.

Am Ende dieser Lektion

Notiz

Ich kann eine Fehlermeldung lesen und die Lösung finden.

Schlüsselwörter

BegriffWas er bedeutet
Fehlermeldungder Text, mit dem ein Programm sagt, was schiefging
Tracebackdie Liste der Stellen im Code, die zum Fehler geführt haben
Dokumentationdie Anleitung zu einem Werkzeug, geschrieben von seinen Autoren
Suchbegriffdie Wörter, die Sie in eine Suchmaschine tippen
SSHein Weg, sich über das Netz sicher in einem Terminal auf einem Server anzumelden

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Lesen Sie von unten nach oben

Ein Traceback ist lang, aber nur wenige Zeilen sind wichtig.

Die letzte Zeile nennt die Art des Fehlers und was los war. Hier: KeyError: 'Kuchen'.

Die Zeilen darüber zeigen den Weg dorthin. Die Zeile direkt über dem Fehler nennt die Stelle, an der es krachte.

Ein Traceback (nur zum Lesen)

Code: bash
Traceback (most recent call last):
  File "kasse.py", line 16, in <module>
    print(summe(["tee", "Kuchen"]))
  File "kasse.py", line 11, in summe
    gesamt = gesamt + preis_von(name)
  File "kasse.py", line 5, in preis_von
    return preise[name]
KeyError: 'Kuchen'

Beispiel: Das Traceback gelesen

Zeile des TracebacksWas sie Ihnen sagt
KeyError: 'Kuchen'Der Schlüssel Kuchen fehlt im Wörterbuch
return preise[name]Hier wird im Wörterbuch nachgeschlagen
File "kasse.py", line 5In Datei kasse.py, Zeile 5
in preis_vonInnerhalb der Funktion preis_von
print(summe(...))So kam das Programm dorthin

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Den Fehler selbst auslösen

Code: python
preise = {"tee": 2.5, "kuchen": 3.0}


def preis_von(name):
    return preise[name]


def summe(namen):
    gesamt = 0
    for name in namen:
        gesamt = gesamt + preis_von(name)
    return gesamt


# Das Wort "Kuchen" ist großgeschrieben, der Schlüssel nicht.
print(summe(["tee", "Kuchen"]))

Ein häufiger Fehler

Warnung

Viele lesen nur die erste Zeile oder gar nichts und raten. Das kostet Zeit. Lesen Sie die letzte Zeile langsam und ganz. Meistens steht dort schon, was fehlt.

Die Lösung suchen

Kopieren Sie die letzte Zeile der Meldung in eine Suchmaschine. Lassen Sie Namen weg, die nur Ihr Projekt kennt.

Suchen Sie KeyError Python, nicht KeyError Kuchen kasse.py. Fremde Seiten kennen Ihre Namen nicht.

Lesen Sie danach zuerst die Dokumentation des Werkzeugs. Sie ist verlässlicher als ein alter Forumsbeitrag.

Die Lösung ausprobieren

Code: python
preise = {"tee": 2.5, "kuchen": 3.0}


def preis_von(name):
    return preise[name.lower()]


def summe(namen):
    gesamt = 0
    for name in namen:
        gesamt = gesamt + preis_von(name)
    return gesamt


print(summe(["tee", "Kuchen"]))

Eine gute Frage stellen

Kommen Sie nicht weiter, fragen Sie Ihr Team. Eine gute Frage spart allen Zeit.

Nennen Sie, was Sie wollten, was geschah und die Fehlermeldung als Text, nicht als Foto. Sagen Sie, was Sie schon versucht haben.

Kurz gesagt: Ziel, Fehler, Versuche. Dann kann man Ihnen gezielt helfen.

Beispiel: Zwei Fragen im Vergleich

Schwache FrageGute Frage
„Die Kasse geht nicht.“„Die Kasse bricht beim Aufruf von summe mit KeyError: 'Kuchen' ab.“
Ein Foto vom BildschirmDie Meldung als Text, mit der Zeilennummer
Kein Wort zu Versuchen„Ich habe geprüft, dass der Schlüssel kleingeschrieben im Wörterbuch steht.“

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Fehler auf einem Server finden

Viele Fehler zeigen sich erst auf einem Server. Dorthin kommen Sie meist mit SSH.

Der Befehl dafür heißt ssh name@server. Ihr Team gibt Ihnen den Namen und die Zugangsdaten.

Dort nutzen Sie, was Sie in dieser Lektion und in „Textdateien lesen und durchsuchen“ gelernt haben: Protokolle lesen und mit grep suchen.

Was ein Team erwartet

Tipp

Niemand erwartet, dass Sie jeden Fehler kennen. Man erwartet, dass Sie die Meldung lesen, kurz suchen und dann eine klare Frage stellen.

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.