Fehlermeldungen interpretieren
Beim Programmieren können unterschiedliche Arten von Fehlern auftreten. Wir unterscheiden Syntaxfehler und Laufzeitfehler.
Syntaxfehler
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.
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"
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")
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
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.
Die folgenden Beispiele erzeugen einen Laufzeitfehler. Versuche, die Ursache für den Fehler zu verstehen.
abs(3, 4)
Hier entsteht ein TypeError. Der Befehl abs
erwartet einen einzelnen Parameter, jedoch werden ihm hier mehrere Argumente übergeben.
abso(4)
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.