Suche
suchen

Fehler verstehen

Behandle jeden Fehler als eine Gelegenheit etwas zu lernen.

Wenn du verstehst, wodurch ein Fehler ausgelöst wurde, hast du wieder etwas neues über die Programmiersprache gelernt. Ließ dir darum unbedingt immer die Fehlermeldungen genau durch und versuche zu verstehen, was sie bedeuten.

Du wirst mit der Zeit merken, ob dir ein ähnlicher Fehler schon einmal passiert ist und immer schneller die Ursache des Fehlers ausfindig machen können.

Computer verzeihen nicht

Eigentlich müsste es heißen: Programmiersprachen sind extrem penibel und verzeihen keinen Tippfehler. Aber wenn sie das nicht wären, könnte es Mißverständnisse geben und das wäre noch schlimmer als einfach nichts zu tun.

Wenn du auf Fehler stößt, liegt es normalerweise nicht daran, dass du sie absichtlich herbeigeführt hast. In der Regel sind es total banale Kleinigkeiten (Syntaxfehler), die einen Error auslösen und dein Programm sicherheitshalber abstürzen lassen. Aber ob du es glaubst oder nicht: Es ist gut, dass es Fehler gibt! Python zeigt dir durch Fehler, dass er nicht versteht, was du verlangst.

Fehlermeldungen verstehen

Über die serielle Konsole bekommst du die Fehlermeldungen mitgeteilt.

Das ist ein großer Vorteil gegenüber Arduino.

Wenn du dir die Meldung genau durchließt, erhältst du genug Informationen um den Fehler zu finden und zu beheben.

Die Zeile, die einen Fehler ankündigt lautet immer:

>>> Zurückverfolgung (jüngste Aufforderung zusetzt)

Die darauf folgenden Zeilen geben Auskunft darüber, wo Python den Fehler vermutet.

Datei "code.py", Zeile 10

In der Zeile steht der Dateiname und die Zeile, in der Python nicht mehr weiter wusste. Die darauf folgende Zeile zeigt die Art des Fehlers an.

ACHTUNG: Manchmal sitzt der Fehler aber auch an einer anderen Stelle. Es lohnt sich also auch die Zeilen davor anzusehen.

IndentationError

IndentationError: unerwarteter Einzug (Einrückung) Bitte Leerzeichen am Zeilenanfang kontrollieren!

Betrachte den Code und wirf einen Blick auf Zeile 10. Die Zeile beginnt mit einem Leerzeichen.

Leerzeichen haben in der Programmiersprache Python eine Bedeutung und dürfen nur verwendet werden, wenn ein neuer Block nach einem while oder nach einem if bzw. else beginnt. In Zeile 10 muss das Leerzeichen also weg.

Einen IndentationError erhältst du also wenn du an einer Stelle zu vielen oder zu wenige Leerzeichen schreibst. Python zwingt dich also dazu, deinen Code schön einzurücken.

Verbessere den Fehler und speichere!

NameError

Der nächste Fehler lässt nicht lange auf sich warten:

Datei "code.py", Zeile 14, in <module>

Die nächste Zeile zeigt wieder die Art des Fehlers an:

NameError: Name 'true' ist nirgends definiert worden. (Schreibweise kontrollieren)

Wirf einen Blick auf Zeile 14 und versuche selbst herauszufinden, was hier falsch ist.

led_red.value = true

Verbessere den Fehler und speichere!

TypeError

Weiter gehts mit Zeile 15

Datei "code.py", Zeile 15, in <module>

TypeError: Funktion nimmt 1 Argumente ohne Keyword an, aber es wurden 2 angegeben

Wenn man in Deutschland zur Schule geht, lernt man das Komma als Dezimaltrennzeichen kennen. In einigen Ländern - unter anderem in Großbritannien und den Vereinigten Staaten - benutzt man allerdings den Punkt an Stelle des Kommas. Der Punkt hat sich deshalb in fast allen Programmiersprachen als Dezimaltrennzeichen durchgesetzt.

Das Komma hat in den meisten Programmiersprachen eine andere Bedeutung. Mit einem Komma trennt man die Argumente, die man an eine Methode übergeben möchte, voneinander.

Die Zeile time.sleep(0,5) ließt sich also: "Rufe die Methode sleep mit den beiden Attributen 0 und 5 auf."

Es sollte aber heißen: "Rufe die Methode sleep mit dem Attribute 0.5 (Null-komma-fünf) auf."

Verbessere den Fehler und speichere!

AttributeError

Und schon wieder ein neuer Fehler:

Datei "code.py", Zeile 17, in <module>

AttributeError: 'module' Objekt hat kein Attribut 'Sleep'

Wirf einen Blick auf Zeile 17 und versuche wieder selbst den Fehler zu finden.

time.Sleep(0.5)

Fazit

Du hast nun hoffentlich verstanden, dass es etwas ganz normales ist, beim Programmieren Fehler zu machen.

Mache dich bereit, dass du in Zukunft viel Zeit damit zubringen wirst, Fehler aufzuspüren.

Du kennst jetzt vier wichtige Error-Typen. Es gibt aber noch eine ganze Menge weiterer. Manchmal ist es hilfreich im Internet recherchieren um herauszufinden was sie bedeuten. Profis schreiben sogar ihre eigenen Fehlertypen wenn es sein muss.

Aufgaben

Lade: /136448


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0.Was bedeutet das?