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 TypNoneType. - JavaScript:
null(bewusst leer) undundefined(nie zugewiesen) — zwei verschiedene Werte! - Java, C#, C++:
nullbzw.nullptrfür Referenz-/Zeigertypen. - SQL:
NULL— ein Zustand „unbekannt", nicht gleich0oder leerem String. - Rust: kein
null— stattdessen der TypOption(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
= NULLvergleichen — immerIS NULLverwenden.
Verwandte Grundlagen: String, Datentyp, Python-Befehle.