575
Kapitel 21
Fehler finden und vermeiden
Bereits in Abschnitt 3.8 wurde die Kunst des Fehlerfindens angesprochen. In diesem Kapitel
werden einige elaborierte Techniken vorgestellt, wie man bei der Entwicklung eines Python-
Programms semantische Fehler vermeiden und aufspüren kann.
Semantische Fehler liegen vor, wenn das Programm zwar läuft, aber nicht das leistet, was es
leisten soll. Manchmal sind es nur Kleinigkeiten. Vielleicht eine falsche Einrückung oder
ein falsch geschriebener Bezeichner. In schlimmen Fällen ist der Algorithmus, der dem Pro-
gramm zu Grunde liegt, im Kern nicht in Ordnung. Man spricht dann auch von logischen
Fehlern.
Im Unterschied zu Syntax- und Laufzeitfehlern kann das System Semantik-Fehler natürlich
nicht erkennen und liefert keine Fehlermeldungen. Semantische Fehler werden erst beim
Testen des Programms offensichtlich. Dabei lässt man das Programm ein Problem bearbei-
ten, von dem man bereits die Lösung kennt, und vergleicht das gelieferte Ergebnis mit dem
erwarteten.
Sie können Fehlern folgendermaßen begegnen:
Erstens können Sie bereits bei der Formulierung des Programmtextes die Möglichkeit logi-
scher Fehler berücksichtigen:
Das Programm testet an kritischen Stellen, ob bestimmte Bedingungen erfüllt sind.
Sind sie nicht erfüllt, wird ein Programmabbruch (durch eine Exception) ausgelöst.
Man gestaltet das Programm so, dass es in Testläufen in einem speziellen Modus
(Debugging-Modus) seine Arbeitsweise dokumentiert, die dann analysiert und auf Kor-
rektheit geprüft werden kann (Tracing).
Eine gute Dokumentation des Programmtextes durch Kommentare erleichtert später
das Aufspüren logischer Fehler.
Zweitens können Sie einen fertigen Programmtext mithilfe eines speziellen Analyse-
werkzeuges (Debugger) testen. Sie führen z.B. das Programm Schritt für Schritt aus und
überprüfen an kritischen Stellen die Variableninhalte.
21.1 Testen von Bedingungen
21.1.1 Ausnahmen (Exceptions)
Eine Ausnahme (Exception) ist ein Objekt, das vom Laufzeitsystem erzeugt wird, wenn ein
Programm aus irgendeinem Grund nicht weiter ausgeführt werden kann. Für verschiedene
Fehlersituationen gibt es unterschiedliche Typen von Ausnahmen, Tabelle 21.1 nennt einige
Beispiele.

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.