Odzyskiwanie za pomocą catch
Zapewnij rozwiązanie zastępcze po wystąpieniu błędu.
Odzyskiwanie za pomocą catch to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 1 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 Zig Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Zig Academy zawiera 4 lekcji w sumie.
Błędy wymagają planu
Funkcja może zwracać unię błędu, na przykład !u32. Zanim użyją Państwo wyniku, muszą zdecydować, co ma się wydarzyć na ścieżce niepowodzenia.
Poznajemy catch
Operator catch przekształca unię błędu w zwykłą wartość, podając wartość zastępczą używaną za każdym razem, gdy wywołanie zwróci błąd.
const n = parse(text) catch 0;Wartość zastępcza zastępuje błąd
Jeśli wywołanie powiedzie się, otrzymają Państwo rzeczywistą wartość. Jeśli wystąpi błąd, otrzymają Państwo zamiast niej prawą stronę wyrażenia catch, więc n zawsze będzie użyteczną liczbą.
const n = parse(text) catch -1;catch jest wyrażeniem
Ponieważ catch zwraca wartość, można umieścić go bezpośrednio wszędzie tam, gdzie oczekiwana jest wartość, na przykład od razu jako argument funkcji.
print(parse(text) catch 0);Przechwytywanie błędu
Proszę dodać przechwytywanie potokowe, aby sprawdzić, co poszło nie tak. Nazwa umieszczona między kreskami przechowuje konkretną zwróconą wartość błędu.
const n = parse(text) catch |err| {
log(err);
return 0;
};catch może wykonywać blok
Prawą stroną wyrażenia catch może być cały blok. Można go użyć do zapisania informacji w logu, obliczenia wartości zastępczej albo przerwania pętli przed dalszym wykonaniem.
const v = open(path) catch |e| blk: {
break :blk fallback;
};catch może wcześniej zakończyć funkcję
Można użyć return wewnątrz catch, aby opuścić funkcję, gdy odzyskanie poprawnego stanu jest niemożliwe. Kod znajdujący się za tym miejscem nigdy nie wykona się w przypadku błędu.
const f = open(path) catch return error.MissingFile;catch unreachable
Zapis catch unreachable stwierdza, że wywołanie nie może się nie powieść. W bezpiecznej kompilacji rzeczywisty błąd spowoduje w tym miejscu panic, zamiast zostać zignorowany.
const n = parse("42") catch unreachable;Należy ostrożnie używać unreachable
Po catch unreachable należy sięgać tylko wtedy, gdy wystąpienie błędu jest rzeczywiście niemożliwe. Jeśli nie mają Państwo pewności, proszę zamiast tego podać prawdziwą wartość zastępczą.
catch a try
Proszę użyć catch, gdy błąd można obsłużyć od razu w bieżącym miejscu. Proszę użyć try, gdy błąd powinien zostać przekazany wyżej, do wywołującego.
Odzyskiwanie jest jawne
Każda unia błędu wymusza podjęcie decyzji, więc niepowodzenie nigdy nie może zostać po cichu pominięte. Za pomocą catch można dokładnie określić sposób odzyskania poprawnego stanu.
Szybkie sprawdzenie
Chcą Państwo kontynuować działanie z bezpieczną wartością domyślną, gdy wywołanie się nie powiedzie. Które wyrażenie będzie odpowiednie?
Podsumowanie
Użyli Państwo catch do obsługi błędów za pomocą wartości zastępczej, bloku, wcześniejszego zwrotu albo asercji. Niepowodzenie jest zawsze obsługiwane celowo. ✅
Ucz się Zig dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Odzyskiwanie za pomocą catch” jest bezpłatna?
Tak — pełny tekst „Odzyskiwanie za pomocą catch” 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 Zig Academy, przejdź na CoddyKit PRO. Kurs Zig Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Odzyskiwanie za pomocą catch”?
Zapewnij rozwiązanie zastępcze po wystąpieniu błędu. Ćwiczysz Zig 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ąć Zig Academy?
Nie wymagamy żadnego doświadczenia. Zig 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 4.
Ile czasu zajmuje lekcja „Odzyskiwanie za pomocą catch”?
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 Zig Academy?
Tak. Każda lekcja Zig 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
- Odzyskiwanie za pomocą catch
- Przełączanie na podstawie konkretnych błędów
- errdefer do sprzątania po niepowodzeniu
- Zawijanie i ponowne zgłaszanie błędów