Laufzeitfehler

Laufzeitfehler (englisch runtime error) sind in der Informationstechnik Fehler, die während der Laufzeit eines Computerprogramms auftreten.

Laufzeitfehler führen zum Absturz des ausgeführten Programms, zu falschen Ergebnissen oder zu nicht vorhersehbarem Verhalten des Programms, z. B. wenn durch falsche/inkonsistente Daten Variablen überschrieben oder mit ungültigen Werten gefüllt werden.

Abgrenzung: Nicht als Laufzeitfehler gelten Programmfehler, die bereits während der Entwicklung des Programmcodes, z. B. von Entwicklungswerkzeugen wie dem Compiler, festgestellt werden. Sind dies schwerwiegende, zum Beispiel grobe Syntaxfehler, so wird in der Regel kein ausführbarer Code erzeugt, das Programm kann deshalb nicht ausgeführt werden.

Abweichende Bedeutungen: In der Literatur treten darüber hinaus sich in Details unterscheidende Beschreibungen für den Begriff „Laufzeitfehler“ auf:

  • So gelten z. B. nach [1][2] oder [3] nur Programmfehler als Laufzeitfehler – die nach dieser Sicht eine der möglichen Klassifizierungen für Programmfehler sind.[4] Nach anderen Quellen können Laufzeitfehler auch andere Ursachen haben, z. B. nach [2] oder[5] („or as a result of external effects“).
  • Weiterhin werden Laufzeitfehler zum Teil immer mit Abbruch gleichgesetzt,[6] während bei anderen Autoren [7] auch zur Laufzeit auftretende logische Fehler ohne Abbruch als Laufzeitfehler bezeichnet werden.
  • Gemäß Quelle[8] tritt ein ‚Laufzeitfehler‘ nur während der Laufzeit i. S. von Produktivbetrieb auf („...und [wurde] nicht während der Programmentwicklung erkannt“).

Gemäß dem Leitfaden "Fehlerklassifikation für Software" der BITKOM[9] zählt das Auftreten von Laufzeitfehlern zu den Fehlern der Klasse A ("sehr schwere Fehler, die Anwendung ist nicht lauffähig ...").

Eine Möglichkeit, Laufzeitfehler zu verhindern, besteht darin, Fehlerquellen vorausschauend auszuschließen, beispielsweise durch eine Feldprüfung und Typisierung. Einige Programmiersprachen sehen ergänzend die Möglichkeit vor, Laufzeitfehler als Ausnahmesituationen zu behandeln, um sinnvoll auf unvorhergesehene Ereignisse reagieren zu können.