4.5 Der Fehlerfall
Vielleicht haben Sie bereits mit dem Beispielprogramm aus Abschnitt 4.3, »Das erste Programm«, gespielt und sind dabei auf eine solche oder ähnliche Ausgabe des Interpreters gestoßen:
File "hallo_welt.py", line 8
if versuch < geheimnis
^
SyntaxError: invalid syntax
Es handelt sich dabei um eine Fehlermeldung, die in diesem Fall auf einen Syntaxfehler im Programm hinweist. Können Sie erkennen, welcher Fehler hier vorliegt? Richtig, es fehlt der Doppelpunkt am Ende der Zeile.
Python stellt bei der Ausgabe einer Fehlermeldung wichtige Informationen bereit, die bei der Fehlersuche hilfreich sind:
- Die erste Zeile der Fehlermeldung gibt Aufschluss darüber, in welcher Zeile innerhalb welcher Datei der Fehler aufgetreten ist. In diesem Fall handelt es sich um die Zeile 8 in der Datei spiel.py.
- Der mittlere Teil zeigt den betroffenen Ausschnitt des Quellcodes, wobei die genaue Stelle, auf die sich die Meldung bezieht, mit einem kleinen Pfeil markiert ist. Wichtig ist, dass dies die Stelle ist, an der der Interpreter den Fehler erstmalig feststellen konnte. Das ist nicht unbedingt gleichbedeutend mit der Stelle, an der der Fehler gemacht wurde.
- Die letzte Zeile spezifiziert den Typ der Fehlermeldung, in diesem Fall einen Syntax Error. Dies sind die am häufigsten auftretenden Fehlermeldungen. Sie zeigen an, dass der Compiler das Programm aufgrund eines formalen Fehlers nicht weiter übersetzen konnte.
Neben dem Syntaxfehler gibt es eine Reihe weiterer Fehlertypen, die an dieser Stelle nicht alle im Detail besprochen werden sollen. Wir möchten jedoch noch auf den IndentationError (dt. »Einrückungsfehler«) hinweisen, da er gerade bei Python-Anfängern häufig auftritt. Versuchen Sie dazu einmal, folgendes Programm auszuführen:
i = 10
if i == 10:
print("Falsch eingerückt")
Sie sehen, dass die letzte Zeile eigentlich einen Schritt weiter eingerückt sein müsste. So, wie das Programm jetzt geschrieben wurde, hat die if-Anweisung keinen Anweisungskörper. Das ist nicht zulässig, und es tritt ein IndentationError auf:
File "indent.py", line 3
print("Falsch eingerückt")
^
IndentationError: expected an indented block
Nachdem wir uns mit diesen Grundlagen vertraut gemacht haben, kommen wir zu den Kontrollstrukturen, die es dem Programmierer erlauben, den Programmfluss zu steuern.