Fehlerarten beim Programmieren

Compiletime Fehler

Das Programmieren ist eine komplexe Tätigkeit, bei der es ganz normal ist, dass Fehler passieren. Manche Fehler werden von dir vielleicht gar nicht als solche wahrgenommen, beispielsweise syntaktische Fehler bei denen vielleicht nur ein Tippfehler der Grund ist.

Fehler zur Compiletime (Übersetzungszeit)

Fehler die vom Compiler gemeldet werden, sind meist sehr einfach zu beheben. Je nachdem um welche Programmiersprache und welchen Fehler es sich handelt, liefert der Compiler meist sogar die Zeilennummer in der der Fehler steht und eine kurze Beschreibung die eventuell zusätzlich hilfreich sein kann. "Eventuell" deshalb, weil die Fehlermeldungen manchmal auch sehr wenig Aussagekraft haben können.

Compiler sind so aufgebaut, dass sie eine mehrstufige Analysephase durchlaufen. Je nach Phase in der ein Fehler aufkommt kann man zwischen lexikalischen, syntaktischen oder semantischen Fehlern unterscheiden. Diese Unterscheidung ist jedoch für dich als Programmierer unerheblich.

Fehler zur Runtime (Laufzeit) – Bugs

Fehler die zur Laufzeit auftreten sind deutlich unangenehmer als Compiletime-Fehler. Besser bekannt sind solche Fehler unter der Bezeichnung "Bug" (engl. "Käfer"). Der folgende Code veranschaulicht einen potentiellen Laufzeitfehler.

int DoExampleCalculation(int parameter1, int parameter2)
{
    // this is an example calculation
    // may cause a divide by zero runtime error
    return parameter1 / parameter2;
}

Wird diese Funktion aufgerufen und als zweiter Parameter 0 übergeben, passiert eine Division durch Null und das Verhalten des Programmes ist für diesen Fall undefiniert (es wird wahrscheinlich abstürzen). Der Fehler in diesem Beispiel ist sehr leicht zu finden, vor Allem wenn er schon beim Debuggen auftritt. Weit schwieriger zu finden sind dagegen sporadische Fehler, die nicht jedes Mal bei der Programmausführung auftreten. Solche Fehler schleichen sich aber meist erst mit der Verwendung von fortgeschrittenen Techniken wie Multithreading ein.

Fehler in der Programmierpraxis

In der Praxis ist es sehr selten, dass Compiletime-Fehler zu einem größeren Problem werden. Laufzeitfehler dagegen können durchaus ein katastrophales Ausmaß annehmen, vor Allem wenn sie erst bei produktiver Nutzung des Programms durch den User bzw. Kunden auftreten. Deshalb ist es in der professionellen Software Entwicklung sehr wichtig, die geschriebenen Programme systematisch auf Laufzeitfehler zu testen.

Call-by-Value und Call-by-Reference

Wenn du einer Funktion Parameter übergibst, solltest du dir darüber Gedanken machen, ob dies als Wertparameter (call-by-value) oder als R

Zeiger (auch im Deutschen gerne mit dem englischen Wort "Pointer" bezeichnet) sind ein fundamentales Feature von C++.

Nach dem Erreichen der Hochschulreife wird die Entscheidung fällig, wie es weitergehen soll.

Copyright © 2014 www.lerneprogrammieren.com