Fehler gehören für Programmierer zum Alltag: Komplexe Computerprogramme laufen nur selten fehlerfrei, schon gar nicht in der Entwicklungsphase. Die möglichen auftretenden Fehler lassen sich allgemein in drei Arten unterteilen:

 

Arten von Programm-Fehlern

  • Syntax-Fehler bewirken, dass ein Programm aufgrund eines “Grammatik-Fehlers” vom Computer nicht in ausführbaren Maschinencode übersetzt werden kann. Derartige Fehler können aus unvollständigen Klammerpaaren, fehlenden Doppelpunkt-Zeichen am Ende einer if-Bedingung, ungültige Zeichen oder ähnlichem bestehen. Enthält ein Programm Syntax-Fehler, so werden diese beim Versuch eines Programmaufrufs angezeigt, und das Programm startet nicht.

    Die zwei geläufigsten Syntax-Checker für Python-Code sind pylint und pyflakes; zudem gibt es einen “Style”-Checker namens pep8, der prüft, ob die offiziellen Empfehlung für das Aussehen von Python-Code eingehalten werden (beispielsweise keine Zeilen mit mehr als 80 Zeichen auftreten).

    Gibt man nach der Installation pylint skriptname.py ein, so werden einerseits darin möglicherweise enthaltene Syntax-Fehler aufgelistet, andererseits werden Empfehlungen zur Verbesserung der Code-Syntax gegeben – unter anderem wird darauf hingewiesen, wenn eine Funktionsdefinition keinen Docstring enthält.

  • Laufzeit-Fehler treten auf, wenn ein Programm versucht, eine ungültige Operation durchzuführen, beispielsweise eine Division durch Null oder ein Öffnen einer nicht vorhandenen Datei. Laufzeit-Fehler treten also erst auf, wenn das Programm (in der Regel ohne Fehlermeldung) bereits läuft.

    Laufzeit-Fehler können in Python allgemein mittels try-except-Konstrukten abgefangen werden.

  • Logische Fehler / semantische Fehler treten auf, wenn ein Programm zwar (anscheinend) fehlerfrei funktioniert, jedoch andere Ergebnisse liefert als erwartet. Bei solchen Fehlern liegt das Problem also an einem Denkfehler des Programmierers.

    Logische Fehler sind oft schwer zu finden; am besten hilft hierbei ein Debugger, mit dem man den Programmablauf Schritt für Schritt nachvollziehen kann .

Tritt in einem Python-Programm ein Fehler auf, der nicht von einer entsprechenden Routine abgefangen wird, so wird das Progarmm beendet und ein so genannter “Traceback” angezeigt. Bei dieser Art von Fehlermeldung, die man von unten nach oben lesen sollte, wird als logische Aufruf-Struktur angezeigt, welche Funktion beziehungsweise Stelle im Programm den Fehler verursacht hat; für diese Stelle wird explizit der Dateiname und die Zeilennummer angegeben.

Beispielfehler

can’t assign to operator = kann dem Operator nicht zugewiesen werden. Die Fehlermeldung erscheint, da Python den Bindestrich in der Variable us-groesse  als Minus interpretiert. Variablennamen können als Option  mit Unterstrich geschrieben werden.

invalid syntax – ein Fehler in der Syntax ( =grammatische Regeln )