Null (in vielen Sprachen auch nil, None oder undefined genannt) ist ein spezieller Wert, der „kein Objekt" oder „nichts" bedeutet. Er steht für das bewusste Fehlen eines Wertes — etwa wenn eine Variable noch nicht gesetzt ist oder eine Suche kein Ergebnis geliefert hat.

Null in verschiedenen Sprachen

  • Python: None — ein eigenständiges Objekt vom Typ NoneType.
  • JavaScript: null (bewusst leer) und undefined (nie zugewiesen) — zwei verschiedene Werte!
  • Java, C#, C++: null bzw. nullptr für Referenz-/Zeigertypen.
  • SQL: NULL — ein Zustand „unbekannt", nicht gleich 0 oder leerem String.
  • Rust: kein null — stattdessen der Typ Option (Some/None).

Die Null-Referenz-Falle

Der berühmteste Fehler der Programmierung ist der Null Pointer Dereference: Man greift auf eine Eigenschaft eines null-Wertes zu, obwohl dort kein Objekt liegt. Die Folge ist ein Laufzeitfehler (z.B. NullPointerException in Java, TypeError in Python oder Segfault in C).

name = anfragen.get("user")   # liefert None, wenn kein User
print(name.upper())           # TypeError: 'NoneType' object has no attribute 'upper'

Sicher mit Null umgehen

  • Vor dem Zugriff prüfen: if wert is not None: (Python) bzw. if (wert != null) (Java/C#).
  • Null-Safety: Sprachen wie Kotlin (String?) oder Rust (Option<T>) erzwingen die Prüfung zur Compile-Zeit.
  • Optional: In Java 8+ kann Optional<T> das Null-Handling strukturieren.
  • In SQL niemals mit = NULL vergleichen — immer IS NULL verwenden.

Verwandte Grundlagen: String, Datentyp, Python-Befehle.