Returnere feil fra funksjoner
Gjør feil eksplisitte i signaturene.
Returnere feil fra funksjoner er en gratis leksjon i Zig Academy på CoddyKit. Dette er leksjon 2 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 i signaturen
Når en funksjon kan mislykkes, angir De det i returtypen. En feilunion som ParseError!u32 varsler alle som kaller funksjonen på forhånd.
fn parse(s: []const u8) ParseError!u32 {
// ...
}Returner suksessverdien
På den vellykkede banen kan De bare returnere nyttelasten som vanlig. Zig pakker den vanlige verdien inn på suksessiden av unionen for Dem.
return 42;Returner en feil i stedet
For å mislykkes kan De returnere én av feilene på samme sted. Den ene return-setningen avgjør hvilken side av unionen De produserer.
if (s.len == 0) return error.Empty;Én retur, to utfall
En funksjon med feilunion kan returnere en verdi i én gren og en feil i en annen. Begge oppfyller den deklarerte typen.
if (ok) return value;
return error.Failed;Void pluss feil
En funksjon som utfører arbeid, men ikke gir noen verdi, kan fortsatt mislykkes. Bruk !void slik at den returnerer ingenting ved suksess eller en feil ved feil.
fn save() !void {
// ...
}Feil bobler opp ved kallstedet
Når De kaller en funksjon som kan mislykkes, får De også en feilunion. De kan ikke ignorere den; kompilatoren tvinger Dem til å håndtere den.
const n = parse(input);Hent feil med if
En if kan dele unionen: hent verdien i hovedgrenen og feilen etter else, og gi hver av dem et navn med en pipe.
if (parse(input)) |n| {
use(n);
} else |err| {
report(err);
}Navngi feilsettet presist
Hvis De lister opp det nøyaktige settet før !, forblir kontrakten ærlig. Den som kaller funksjonen, lærer hele listen over feil uten å lese kroppen.
fn open(p: []const u8) FileError!File {}Feil krysser funksjonsgrenser
En feil som returneres dypt inne i koden, beveger seg utover bare når hver funksjon i kjeden erklærer at også den kan mislykkes.
Gjør feil eksplisitte
Dette er kjernen i Zig-feilhåndtering: feil skjules aldri. Signaturen er et løfte om hva som kan gå galt.
Kompilatoren passer på
Hvis De glemmer å håndtere en returnert feil, mislykkes byggingen. Zig nekter å la en mulig feil slippe stille gjennom.
Hurtigsjekk
En funksjon utfører arbeid, men returnerer ingen nyttig verdi, og den kan likevel mislykkes. Hvilken returtype passer?
Oppsummering
De har deklarert funksjoner som kan mislykkes med !T, returnert verdier eller feil fra én return-setning og sett at kompilatoren tvinger den som kaller funksjonen, til å håndtere dem. ✅
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 «Returnere feil fra funksjoner» gratis?
Ja – hele teksten i «Returnere feil fra funksjoner» 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 «Returnere feil fra funksjoner»?
Gjør feil eksplisitte i signaturene. 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 2 av 4.
Hvor lang tid tar leksjonen «Returnere feil fra funksjoner»?
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
- Feilsett og !T-unionen
- Returnere feil fra funksjoner
- Propagere feil med try
- Utledede feilsett