Gjenopprette med catch
Gi en reserveverdi når en feil oppstår.
Gjenopprette med catch er en gratis leksjon i Zig Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Zig Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Zig Academy inneholder totalt 4 leksjoner.
Feil krever en plan
En funksjon kan returnere en feilunion som !u32. Før De bruker resultatet, må De bestemme hva som skal skje på feilstien.
Møt catch
catch-operatoren gjør en feilunion om til en vanlig verdi ved å angi en reserveverdi som skal brukes når kallet returnerer en feil.
const n = parse(text) catch 0;Reserveverdien erstatter feilen
Hvis kallet lykkes, får De den faktiske verdien. Hvis det oppstår en feil, får De i stedet høyresiden av catch, så n alltid er et brukbart tall.
const n = parse(text) catch -1;catch er et uttrykk
Fordi catch gir en verdi, kan De sette det inn direkte hvor som helst en verdi forventes, for eksempel rett inn som et funksjonsargument.
print(parse(text) catch 0);Hent inn feilen
Legg til en pipe-capture for å undersøke hva som gikk galt. Navnet mellom strekene inneholder den spesifikke error-verdien som ble returnert.
const n = parse(text) catch |err| {
log(err);
return 0;
};catch kan kjøre en blokk
Høyresiden av catch kan være en hel blokk. Bruk den til å logge, beregne en reserveverdi eller gå ut av en løkke før kjøringen fortsetter.
const v = open(path) catch |e| blk: {
break :blk fallback;
};catch kan returnere tidlig
De kan bruke return inne i catch for å forlate funksjonen når gjenoppretting ikke er mulig. Koden etter dette kjøres aldri ved en feil.
const f = open(path) catch return error.MissingFile;catch unreachable
Ved å skrive catch unreachable hevder De at kallet ikke kan mislykkes. I et sikkert bygg fører en faktisk feil her til panic i stedet for å bli ignorert.
const n = parse("42") catch unreachable;Bruk unreachable med forsiktighet
Bruk catch unreachable bare når en feil faktisk er umulig. Hvis De er usikker, bør De angi en reell reserveverdi i stedet.
catch kontra try
Bruk catch når De kan håndtere feilen her og nå. Bruk try når De heller vil sende feilen videre til kalleren.
Gjenoppretting er eksplisitt
Alle feilunioner tvinger frem et valg, slik at en feil aldri kan forsvinne i stillhet. Med catch bestemmer De nøyaktig hvordan gjenopprettingen skal skje.
Hurtigsjekk
De vil fortsette med en sikker standardverdi når et kall mislykkes. Hvilket uttrykk passer?
Oppsummering
De brukte catch til å håndtere feil med en reserveverdi, en blokk, en tidlig retur eller en påstand. Feil håndteres alltid med hensikt. ✅
Lær deg Zig med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Gjenopprette med catch» gratis?
Ja – hele teksten i «Gjenopprette med catch» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Zig Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Zig Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Gjenopprette med catch»?
Gi en reserveverdi når en feil oppstår. Du øver på Zig Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Zig Academy?
Ingen tidligere erfaring er nødvendig. Zig Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Gjenopprette med catch»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Zig Academy-leksjonen?
Ja. Alle Zig Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Gjenopprette med catch
- Bytte på spesifikke feil
- errdefer for opprydding ved feil
- Pakke inn og kaste feil på nytt