javascript / expert
Snippet
Die Result-Monade zur Fehlerfortpflanzung
Das Result-Muster ersetzt das Auslösen von Exceptions durch ein Rückgabeobjekt, das entweder Erfolg oder Misserfolg darstellt. Dieser funktionale Ansatz macht die Fehlerbehandlung im Typsystem explizit, zwingt Entwickler, potenzielle Fehler zu berücksichtigen, und macht den Kontrollfluss leichter nachvollziehbar.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const Success = (value) => ({ ok: true, value });const Failure = (error) => ({ ok: false, error });const safeJSON = (str) => {try { return Success(JSON.parse(str)); }catch (e) { return Failure(e.message); }};const res = safeJSON('{"key": "val"}');if (res.ok) {console.log(res.value.key);} else {console.error(res.error);}
Erklärung
1
return Success(JSON.parse(str))
Hüllt ein erfolgreiches Rechenergebnis in ein standardisiertes Container-Objekt ein.
2
if (res.ok) { ... }
Erzwingt eine explizite Prüfung des Ergebnisses, bevor auf die Daten zugegriffen wird.