Nullzeigerprüfung von .NET 6 25.03.2022, 09:02 Uhr

Nullzeiger-Probleme vermeiden

Mit NET 6 beziehungsweise C# 8 ist Microsoft angetreten, mögliche Nullzeiger-
Dereferenzierungen bereits zur Kompilierzeit zu erkennen.
(Quelle: EMG Design Unit)
Die Idee ist, vermittels statischer Codeanalyse dem Entwickler genügend Unterstützung anzubieten, um Nullzeiger-Probleme gar nicht erst in das fertige Produkt einfließen zu lassen. Wie das in der Praxis funktioniert und wo sich diese von der Theorie unterscheidet, zeigt der nachfolgende Artikel. Außerdem gibt er wertvolle Hinweise für die Migration bestehender Codebasen.
Nullzeiger werden gelegentlich auch als der Billion-Dollar-Mistake bezeichnet. Diese Bezeichnung geht zurück auf Tony Hoare, der 1965 den Nullzeiger erfand und – so seine Aussage – dadurch viel Frustration über Entwickler und Anwender gebracht haben dürfte. Ob man sich dieser Argumentation anschließen möchte, sei jedem selbst überlassen. Fakt ist jedenfalls, dass jeglicher Fehler, der sich erst spät im Prozeß manifestiert, grundsätzlich immer teurer ist. Insofern ist es eine gute Sache, dass Compiler und IDE nun in der Lage sind, dem Entwickler mögliche Fehlerquellen bereits zur Kompilierzeit oder beziehungsweise bereits während des Codierens aufzuzeigen.
Laut Spezifikation ist das übergeordnete Ziel, die Chance zu minimieren, dass die Applikation zur Laufzeit anlässlich der Dereferenzierung eines Nullzeigers eine NullReferenceException wirft. Erreicht wird dies einerseits durch einige Anpassungen in der Sprachspezifikation, andererseits vermittels statischer Codeanalyse. Die syntaktischen Änderungen sollen den Entwickler in die Lage versetzen, in seinem Code die Intention besser herauszuarbeiten.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar