JavaScript · Junior · Frage 35 von 75
Warum fängt catch den Fehler nicht?
try {
fetch("/api").then(r => { throw new Error("fail"); });
} catch (e) {
console.log("caught");
}- 1Der Fehler tritt später auf, wenn
tryschon beendet ist - 2
try/catchkannError-Objekte überhaupt nicht fangen - 3
fetchschluckt automatisch alle Fehler in.then
Antwort zeigen
Richtige Antwort: Der Fehler tritt später auf, wenn try schon beendet ist
Erklärung
Der try-Block lief synchron und war beendet, bevor der Server geantwortet hat. Fehler in der Kette fängt man mit .catch() oder indem man in einer async-Funktion await fetch(...) in try schreibt - dann funktioniert catch.