Fehlermeldungen interpretieren

Beim Programmieren können unterschiedliche Arten von Fehlern auftreten. Wir unterscheiden Syntaxfehler und Laufzeitfehler.

Syntaxfehler

Theorie Icon Syntaxfehler entstehen immer dann, wenn der geschriebene Quellcode nicht vom Python-Interpreter in Maschinencode übersetzt werden kann, da die Regeln der Python-Grammatik nicht eingehalten wurden. Bereits vor der Programmausführung wird geprüft, ob Syntaxfehler vorhanden sind und diese auch ausgegeben.

Thonny Icon Führe die folgenden beiden Skripte in deinem Thonny aus, versuche die Ausgabe zu verstehen und Rückschlüsse auf den Fehler zu ziehen.


print("hier soll Text stehen"


Screenshot einer EOF-Fehlermeldung des Python-Interpreters
EOF-Fehlermeldung bei fehlender geschlossener Klammer

Hier wirft der Python Interpreter einen SyntaxError. Die Fehlermeldung ist ein unerwartetes Ende der Datei (EOF - end of file). Dieser Hinweis bedeutet, dass der Interpreter auf die Schließung der Klammer wartet, jedoch zuerst das Ende der Datei findet und somit das Ganze als Fehler meldet.



print("Hier soll Text stehen"
print("noch ein Text")
Screenshot einer Syntax-Fehlermeldung des Python-Interpreters
Syntax-Fehlermeldung bei fehlender geschlossener Klammer

Es ist wieder ein SyntaxError, jedoch wird diesmal in der Zeile darüber auf den zweiten print Befehl gezeigt. Dies ist die Stelle, welche der Python Interpreter nicht erwartet hat. Deshalb wird dort auch der Fehler angezeigt, jedoch sollte das eigentliche Problem eine Zeile vorher gesucht werden.

Laufzeitfehler

Theorie Icon Laufzeitfehler sind Fehler, die erst dann auftreten, wenn das Programm ausgeführt wird. Die syntaktischen Regeln der Programmiersprache wurden eingehalten, trotzdem erzeugt eine Zeile des Programms einen Fehler und das Programm wird abgebrochen.

Thonny Icon Die folgenden Beispiele erzeugen einen Laufzeitfehler. Versuche, die Ursache für den Fehler zu verstehen.

abs(3, 4)
Screenshot einer Typ-Fehlermeldung des Python-Interpreters bei falscher Parameteranzahl
Typ-Fehlermeldung bei falscher Parameteranzahl

Hier entsteht ein TypeError. Der Befehl abs erwartet einen einzelnen Parameter, jedoch werden ihm hier mehrere Argumente übergeben.


abso(4)
Screenshot einer Name-Fehlermeldung des Python-Interpreters bei falscher Befehlsbezeichnung
Name-Fehlermeldung bei falscher Befehlsbezeichnung

Diesmal gibt es einen NameError. Der Interpreter kann den angegebenen Befehlsnamen nicht finden und wirft an dieser Stelle den Fehler. Zur Berichtigung muss nur ein gültiger Funktionsname angegeben werden.