Objekte anstatt Null-Referenzen

Können Sie sich noch an den Milliarden-Dollar-Fehler von Tony Hoare erinnern?

Jedenfalls bringt die Null-Referenz (in C++ der Null-Zeiger) viele Programmierer zur Verzweiflung. Denn man tappt immer wieder in die Falle, das eine Referenz Null sein kann. Wenn man diese nicht vor der Benutzung prüft, gibt es einen Absturz. Und dieser Fehler führte weltweit seit seiner Erfindung zusammen gerechnet wohl zu eine Milliarde-Dollar Kosten.

Sie erleben den Fehler und umgehen diesen deshalb so oder ähnlich:

void bar(Type r) {
   if(r != null)
      r.foo();
}
TypeList r = search();
if(r != null)
   r.foo();

Die if-Abfragen sind doch unnötiger Ballast und haben nichts mit der eigentlich zu lösenden Aufgabe (Algorithmus) zu tun. Diese if-Abfragen machen nur deutlich, dass die API oder Programmiersprache anscheinend nicht vertrauenswürdig genug ist. Überall sind diese „Stützräder“ und machen den Code unleserlicher und lenken vom eigentlichen Code ab. » Weiterlesen