Zig Academy · leksjon

Returnere feil fra funksjoner

Gjør feil eksplisitte i signaturene.

Leksjon 2 av 413 trinn

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. ✅

Gratis å komme i gang

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

  1. Feilsett og !T-unionen
  2. Returnere feil fra funksjoner
  3. Propagere feil med try
  4. Utledede feilsett
← Tilbake til Zig Academy