Home » Tutorials » Programmierkonzepte » Fehlerbehandlung

Fehlerbehandlung

Einführung

Fehler können wir generell in drei Gruppen einteilen:

  • Syntaxfehler werden bereits beim Kompilieren gefunden und angezeigt. Der Compiler prüft dabei den Quelltext auf seine syntaktischen und semantischen Eigenschaften. Die syntaktische Analyse bezieht sich auf die Grammatik von Object Pascal, z.B. auf ein falsch geschriebenes Schlüsselwort. Nicht deklarierte Bezeichner werden hingegen erst in der darauffolgenden semantischen Analyse festgestellt, da dort die Zusatzbedingungen im jeweiligen Zusammenhang überprüft werden. Tritt ein Syntaxfehler auf, dann wird das Programm nicht übersetzt und ist somit nicht lauffähig. Allerdings wissen wir, wo der Fehler auftritt, und können ihn somit schnell beheben.
  • Laufzeitfehler entstehen erst beim Ausführen des Programms – die Syntaxprüfung war also erfolgreich. Typische Fehler wären z.B. eine Division durch Null oder der Zugriff auf eine noch nicht erzeugte Instanz einer Klasse. Im günstigsten Fall erhalten wir bei einem Laufzeitfehler sofort eine Meldung und kennen somit die Fundstelle. Möglich ist allerdings auch, dass irgendein Speicherbereich überschrieben wird und der Fehler erst sehr viel später auftritt.
  • Bei Logikfehlern, welche nicht zu einem Laufzeitfehler führen, treten überhaupt keine Fehlermeldungen auf. Das Programm verhält sich lediglich anders als erwartet. Solche Fehler sind mitunter schwer zu finden, da wir unter Umständen von einer falschen Annahme ausgehen und uns deswegen selbst im Weg stehen.

Syntaxfehler können wir direkt im Quelltext beheben. Für Laufzeit- und Logikfehler benötigen wir jedoch ein Instrument, welches uns erlaubt, den Zustand des Programms auszuwerten. Erst durch den Einblick in aktuelle Variableninhalte, die Aufrufreihenfolge von Funktionen oder das Durchschreiten des Quelltextes in Einzelschritten, können wir uns der Fehlerstelle nähern. Das alles gehört zur Grundfunktionalität des Debuggers.