JavaScript · Junior · Pytanie 35 z 75
Dlaczego catch nie złapie błędu?
try {
fetch("/api").then(r => { throw new Error("fail"); });
} catch (e) {
console.log("caught");
}- ✓Poprawna odpowiedź: Błąd występuje później, asynchronicznie, gdy
tryjuż się zakończył - 2
try/catchw ogóle nie łapie obiektówError - 3
fetchautomatycznie połyka wszystkie błędy wewnątrz.then
Wyjaśnienie
Blok try wykonał się synchronicznie i zakończył, zanim serwer odpowiedział. Błędy w łańcuchu łapie się przez .catch() albo pisząc await fetch(...) wewnątrz try w funkcji async - wtedy catch działa.