- Startseite
- Skills
- Fehlerbehebung
- Null-Referenz-Eliminator
Null-Referenz-Eliminator
Null- und Undefined-Referenzfehler systematisch finden und mit defensiven Programmiermustern beheben.
Das Problem
Tony Hoare nannte Null seinen “Milliarden-Dollar-Fehler” — und jeder Entwickler hat den Preis gezahlt. “Cannot read property X of undefined” ist der haeufigste Fehler in JavaScript. Diese Fehler scheinen einfach, verbergen sich aber in tief verschachtelten Objekten, optionalen API-Antworten, Race Conditions zwischen Initialisierung und Zugriff, und impliziten Typumwandlungen, die gueltige Werte in Null verwandeln.
Der Prompt
Du bist ein Null-Sicherheits-Analyst. Pruefe diesen Code auf Null/Undefined-Schwachstellen und liefere systematische Fixes:
CODE:
[Funktion, Komponente oder Modul einfuegen]
SPRACHE: [JavaScript/TypeScript/Java/Python/Go/etc.]
FEHLER (falls vorhanden): [Null-Referenz-Fehlermeldung und Zeile einfuegen]
DATENQUELLE: [woher kommen die Daten — API, Datenbank, Benutzereingabe, Props]
Fuehre ein Null-Sicherheits-Audit durch:
1. **Null-Quellen-Mapping**: Fuer jeden Variablenzugriff zurueck zur Quelle verfolgen. Kann diese Quelle jemals null/undefined sein?
2. **Zugriffsketten-Analyse**: Jede Property-Zugriffskette (a.b.c.d) finden. Fuer jedes Glied bestimmen, ob es null sein kann.
3. **Temporale Null-Fenster**: Zeitraeume identifizieren, in denen Variablen null sind — zwischen Deklaration und Initialisierung, waehrend async Operationen, nach Cleanup/Unmount.
4. **Defensiver Fix**: Fuer jede Schwachstelle den passenden Fix empfehlen — Optional Chaining (?.), Nullish Coalescing (??), Type Guards, Standardwerte, Early Returns oder Schema-Validierung.
5. **Praevention**: Typ-Garantien vorschlagen, die diese Null-Fehler zur Compile-Zeit unmoeglich machen.
Beispiel-Ausgabe
Null-Quellen gefunden: 3 kritisch, 5 moderat
Kritisch #1: user.profile.avatar.url — API liefert profile:null fuer neue Benutzer
Kritisch #2: items[0].name — Array kann leer sein, items[0] ist undefined
Kritisch #3: ref.current.focus() — ref ist null beim ersten Render und nach Unmount
Fix #1: user.profile?.avatar?.url ?? '/default-avatar.png'
Fix #2: items.length > 0 ? items[0].name : 'Keine Eintraege'
Fix #3: ref.current?.focus() innerhalb useEffect
Praevention: "strictNullChecks" in tsconfig.json aktivieren
Wann verwenden
Diesen Skill einsetzen bei “Cannot read property of null/undefined”-Fehlern, beim Refactoring von Code mit verschachtelten Datenstrukturen, oder bei Integration externer APIs mit nicht garantierten Antwortformen. Auch proaktiv fuer kritische Codepfade vor dem Produktivgang.
Profi-Tipps
- TypeScript strict null checks aktivieren —
"strictNullChecks": trueerzwingt die Behandlung von null zur Compile-Zeit. - An der Grenze validieren, innen vertrauen — alle externen Daten am Eintrittspunkt mit Zod validieren. Innerhalb der validierten Grenze den Typen vertrauen.
- Das Double-Bang-Antimuster —
!!zur Boolean-Konvertierung verbirgt Null-Checks. Explizit pruefen, was man testet. - Optional Chaining kurzschliesst —
a?.b?.c?.dgibtundefinedam ersten Null-Glied zurueck. Mit??fuer Standardwerte kombinieren.