try/catch/finally, throw i własne błędy
Używanie try/catch/finally, zgłaszanie prostych błędów za pomocą throw oraz definiowanie niewielkiego własnego Error dla czytelniejszych komunikatów
try/catch/finally, throw i własne błędy to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 1 z 2. 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 2 lekcji w sumie.
Wprowadzenie do obsługi błędów
Cel: Bezpiecznie przechwytywać błędy i utrzymywać stabilność programów.
- Podstawy try/catch
- throw z jasnym komunikatem
- finally do sprzątania
- Niewielki własny Error

Podstawy try/catch
Ryzykowne operacje należy otaczać blokiem try. W bloku catch należy wyświetlać krótki i pomocny komunikat.
// try/catch around risky code
try {
const data = JSON.parse("{\"name\":\"Ayla\"}");
console.log("Parsed:", data.name);
} catch (e) {
// e.message is short and useful on mobile
console.log("Failed to parse:", e.message);
}

Podstawy throw
Należy używać throw new Error("message"), aby przerwać działanie i wyjaśnić, co poszło nie tak.
// Throw when inputs are invalid
function doubleNumber(n) {
if (typeof n !== "number") {
throw new Error("Number required");
}
return n * 2;
}
try {
console.log(doubleNumber(4));
console.log(doubleNumber("4")); // will throw
} catch (e) {
console.log("Error:", e.message);
}

finally do sprzątania
finally jest wykonywane niezależnie od tego, czy blok try zakończył się powodzeniem, czy błędem — jest przydatne do zamykania zasobów.
// finally runs after try/catch — great for cleanup
let opened = false;
try {
opened = true;
console.log("Opened:", opened);
// Force an error to see finally still run
JSON.parse("{ bad }");
} catch (e) {
console.log("Caught:", e.message);
} finally {
opened = false;
console.log("Closed:", opened);
}

Własny Error (podstawy)
W przypadku problemów z danymi wejściowymi można utworzyć niewielki InputError. Za pomocą instanceof można obsłużyć go w konkretny sposób.
// Make a small custom error
class InputError extends Error {
constructor(message) {
super(message);
this.name = "InputError";
}
}
function positive(n) {
if (typeof n !== "number") {
throw new InputError("Number required");
}
if (n <= 0) {
throw new InputError("Must be positive");
}
return n;
}
try {
console.log("OK:", positive(3));
console.log("Fail:", positive(0));
} catch (e) {
if (e instanceof InputError) {
console.log("Input problem:", e.message);
} else {
// Unknown error: rethrow or log differently
console.log("Unexpected:", e.message);
}
}

Wskazówki i lista kontrolna
Wskazówki:
- Wejście należy sprawdzać odpowiednio wcześnie i zgłaszać krótkie komunikaty.
- Do sprzątania należy używać finally (zamykania flag, timerów itp.).
- Nie należy ignorować błędów: trzeba je krótko logować albo ponownie zgłaszać.

Quiz: finally
Szybkie sprawdzenie: Działanie finally.

Podsumowanie
Podsumowanie: Ryzykowny kod należy otaczać blokiem try/catch, zgłaszać krótkie i pomocne błędy, używać finally do sprzątania oraz definiować niewielkie własne błędy, aby ułatwić ich obsługę.

Często zadawane pytania
Czy lekcja „try/catch/finally, throw i własne błędy” jest bezpłatna?
Tak — pełny tekst „try/catch/finally, throw i własne błędy” 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 2 lekcji w sumie.
Co nauczysz się w „try/catch/finally, throw i własne błędy”?
Używanie try/catch/finally, zgłaszanie prostych błędów za pomocą throw oraz definiowanie niewielkiego własnego Error dla czytelniejszych komunikatów Ć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 1 z 2.
Ile czasu zajmuje lekcja „try/catch/finally, throw i własne błędy”?
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
- try/catch/finally, throw i własne błędy
- Programowanie defensywne i sprawdzanie danych wejściowych