0Pricing
Zig Academy · Lekcja

Zbiory błędów i unia !T

Traktuj błędy jak pełnoprawne wartości.

Zbiory błędów i unia !T 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 są wartościami

W Zig nie ma wyjątków. Błąd jest zwykłą wartością, którą funkcja może zwrócić, więc niepowodzenie jest widoczne w kodzie.

Zadeklaruj zbiór błędów

Zbiór błędów to nazwana grupa możliwych błędów. Wypisuje się jego warianty podobnie jak elementy enuma opisujące możliwe problemy.

const FileError = error{
    NotFound,
    PermissionDenied,
};

Odwołaj się do pojedynczego błędu

Do każdego elementu zbioru błędów odwołuje się za pomocą kropki. Wartość FileError.NotFound jest konkretnym błędem, który można zwrócić.

return FileError.NotFound;

Anonimowe zbiory błędów

Nazwa nie zawsze jest potrzebna. Zapisanie error{Empty} bezpośrednio w kodzie tworzy mały, jednorazowy zbiór błędów w miejscu użycia.

return error.Empty;

Wykrzyknik oznacza możliwość błędu

! w typie tworzy unię błędów. Typ przed nim jest wartością w przypadku powodzenia, a zamiast niej może pojawić się błąd.

FileError!u32

Odczytuj !T jako typ alternatywny

!u32 można rozumieć jako wartość u32 albo błąd. Pojedyncza wartość reprezentuje oba wyniki, więc wywołujący musi wybrać jeden z nich.

Dwie strony unii

Unia błędów ma w czasie działania dokładnie dwie postacie: prawidłowy ładunek typu T albo jeden z błędów ze zbioru. Nigdy oba naraz.

Ustaw przed wykrzyknikiem

Umieść zbiór błędów po lewej stronie !, aby dokładnie określić, które błędy są dozwolone. Dzięki temu informacja o możliwym niepowodzeniu jest zapisana w typie.

fn parse(s: []const u8) FileError!u32 {
    // ...
}

Scalanie zbiorów błędów

Operator || zastosowany do dwóch zbiorów błędów łączy je w jeden. Dzięki temu funkcja może jednocześnie dopuszczać błędy z kilku źródeł.

const AllError = FileError || NetError;

anyerror jest nadzbiorem

Wbudowany typ anyerror zawiera każdy możliwy błąd. Jest wygodny, ale traci precyzję nazwanego zbioru, dlatego należy używać go oszczędnie.

fn risky() anyerror!void {}

Dlaczego zbiory są pomocne

Ponieważ błędy należą do typu, kompilator zna każde niepowodzenie, które może wystąpić w funkcji. Nic nie umknie jako nieobsłużone.

Szybkie sprawdzenie

Funkcja ma typ FileError!u32. Co on opisuje?

Podsumowanie

Poznano zbiory błędów, unię !T, scalanie zbiorów za pomocą || oraz anyerror. Błędy są zwykłymi wartościami śledzonymi przez system typów. ✅

Często zadawane pytania

Czy lekcja „Zbiory błędów i unia !T” jest bezpłatna?

Tak — pełny tekst „Zbiory błędów i unia !T” 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 „Zbiory błędów i unia !T”?

Traktuj błędy jak pełnoprawne wartości. Ć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 „Zbiory błędów i unia !T”?

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

  1. Zbiory błędów i unia !T
  2. Zwracanie błędów z funkcji
  3. Propagowanie niepowodzeń za pomocą try
  4. Wnioskowane zbiory błędów
← Powrót do Zig Academy