Geschrieben von: Robert Mertens | Letztes Update: 

Fehlerarten beim Programmieren

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.

Zusammenfassung

  • Compiletime-Fehler werden vom Compiler gemeldet und sind in der Regel einfach zu beheben.
  • Runtime-Fehler, auch bekannt als “Bugs”, sind unangenehmer und können schwerwiegende Konsequenzen haben.
  • Sporadische Fehler treten nicht bei jeder Programmausführung auf und sind schwer zu finden.
  • In der professionellen Softwareentwicklung ist es wichtig, Programme systematisch auf Laufzeitfehler zu testen.

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.

Beispiel für Division durch Null

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.

War der Artikel hilfreich für dich? Wenn ja, helfe uns und teile ihn bitte!

FAQ: Häufige Fragen

Was sind Fehlerarten beim Programmieren?

Fehlerarten beim Programmieren umfassen Compiletime-Fehler, Runtime-Fehler und sporadische Fehler.

Was sind Compiletime-Fehler?

Compiletime-Fehler werden vom Compiler gemeldet und sind in der Regel einfach zu beheben. Der Compiler liefert oft die Zeilennummer und eine kurze Beschreibung des Fehlers.

Was sind Runtime-Fehler?

Runtime-Fehler, auch bekannt als “Bugs”, treten während der Ausführung des Programms auf. Sie können schwerwiegende Konsequenzen haben und sind unangenehmer als Compiletime-Fehler.

Wie können sporadische Fehler definiert werden?

Sporadische Fehler treten nicht bei jeder Programmausführung auf und sind schwer zu finden. Sie können besonders bei fortgeschrittenen Techniken wie Multithreading auftreten.

Warum ist es wichtig, Programme systematisch auf Laufzeitfehler zu testen?

In der professionellen Softwareentwicklung ist es wichtig, Programme systematisch auf Laufzeitfehler zu testen, da Laufzeitfehler zu katastrophalen Auswirkungen führen können, insbesondere wenn sie erst während der produktiven Nutzung durch den Benutzer auftreten.