Obsługa błędów i kodów stanu
Proszę sprawdzać response.ok i obsługiwać błędy.
Obsługa błędów i kodów stanu to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 4 lekcji w sumie.
fetch nie odrzuca obietnicy przy błędach HTTP
fetch odrzuca Promise wyłącznie przy błędach sieciowych. Odpowiedź 404 lub 500 nadal powoduje pomyślne spełnienie Promise. Status należy sprawdzać samodzielnie.Sprawdzanie response.ok
response.ok ma wartość true tylko dla kodów statusu z zakresu 200–299. Należy używać go do wykrywania błędów HTTP.const response = await fetch(url);
if (!response.ok) {
console.log("HTTP error:", response.status);
}Odczytywanie kodu statusu
response.status zwraca kod liczbowy, a response.statusText — krótki komunikat. Na ich podstawie należy rozgałęziać logikę, aby obsługiwać konkretne przypadki.if (response.status === 404) console.log("Not found");
if (response.status === 401) console.log("Unauthorized");Zgłaszanie błędu przy nieprawidłowym statusie
catch obsługuje zarówno błędy sieciowe, jak i błędy HTTP.if (!response.ok) {
throw new Error("Request failed: " + response.status);
}Umieszczanie w try/catch
async/await cały przepływ należy umieścić w bloku try/catch. Błędy sieciowe odrzucają Promise i trafiają do catch; tak samo stanie się z samodzielnie zgłoszonym błędem HTTP.try {
const res = await fetch(url);
if (!res.ok) throw new Error("Status " + res.status);
const data = await res.json();
} catch (err) {
console.log("Failed:", err.message);
}Rozróżnianie typów błędów
Odczytywanie treści błędów
if (!res.ok) {
const errBody = await res.json().catch(() => ({}));
throw new Error(errBody.message || ("Status " + res.status));
}Typowe kody statusu
Wielokrotnie używany pomocnik
async function getJSON(url) {
const res = await fetch(url);
if (!res.ok) throw new Error("HTTP " + res.status);
return res.json();
}Ponawianie prób przy przejściowych błędach
for (let i = 0; i < 3; i++) {
try { return await getJSON(url); }
catch (e) { if (i === 2) throw e; }
}Wyświetlanie błędów użytkownikowi
getJSON(url)
.then(render)
.catch(() => showToast("Could not load data"));Szybki sprawdzian
Podsumowanie
response.ok/response.status i zgłaszać błędy przy nieprawidłowych statusach. Wywołania należy umieszczać w try/catch, odczytywać treść błędów w celu uzyskania komunikatów, centralizować sprawdzanie w pomocniku i wyświetlać przyjazne błędy w interfejsie użytkownika.Często zadawane pytania
Czy lekcja „Obsługa błędów i kodów stanu” jest bezpłatna?
Tak — pełny tekst „Obsługa błędów i kodów stanu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Obsługa błędów i kodów stanu”?
Proszę sprawdzać response.ok i obsługiwać błędy. Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?
Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Obsługa błędów i kodów stanu”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?
Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wysyłanie żądań GET
- POST i wysyłanie danych
- Obsługa błędów i kodów stanu
- Przerywanie żądań za pomocą AbortController