Propagera fel med try
Låt fel bubbla upp med ett enda nyckelord
Propagera fel med try är en gratis lektion i Zig Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Zig Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Zig Academy innehåller totalt 4 lektioner.
Hanteringen blir repetitiv
Att skriva en if-else runt varje anrop som kan misslyckas för att vidarebefordra felet blir snabbt rörigt. Zig erbjuder en genväg: nyckelordet try.
try packar upp eller returnerar
Placera try före ett anrop som kan misslyckas. Vid framgång får du värdet; vid fel returneras felet från den aktuella funktionen.
const n = try parse(input);Det är bara syntaktiskt socker
Den raden är exakt samma sak som att fånga felet och returnera det själv. try skriver bara standardkoden åt dig.
const n = parse(input) catch |e| return e;Din funktion måste kunna misslyckas
Eftersom try kan returnera ett fel måste den omslutande funktionen ha en returtyp som är en felunion. Annars avvisar kompilatorn koden.
fn run() !void {
const n = try parse(input);
}Kedja flera try
Placera flera try-anrop efter varandra. Varje anrop avslutar funktionen tidigt vid misslyckande, så framgångsvägen läses uppifrån och ned.
const f = try open(path);
const data = try read(f);try mitt i uttryck
Du kan placera try direkt inuti ett större uttryck. Det uppackade värdet flödar direkt vidare till det omgivande anropet eller beräkningen.
const total = base + try parse(input);try med void-anrop
Även när ett anrop returnerar !void använder du try för att vidarebefordra eventuella fel. Du får inget värde tillbaka, bara en tidig returnering vid fel.
try file.writeAll(data);Fel klättrar upp genom anropsstacken
Med try i varje lager propagerar ett djupt liggande fel hela vägen upp tills någon anropare slutligen bestämmer sig för att hantera det.
En lättläst framgångsväg
Den stora vinsten är tydlighet: vidarebefordran av fel döljs bakom ett enda nyckelord, så att huvudlogiken förblir i centrum.
try hanterar inte fel
Kom ihåg att try bara vidarebefordrar ett fel; det återhämtar sig aldrig från det. Om du vill reagera lokalt använder du i stället catch.
När ska du vidarebefordra?
Använd try när rätt val är att låta anroparen hantera misslyckandet. De flesta mellanliggande funktioner skickar helt enkelt fel vidare uppåt.
Snabb kontroll
Du skriver try doThing() inuti en funktion. Vad händer om doThing returnerar ett fel?
Sammanfattning
Du har lärt dig att try packar upp vid framgång och annars returnerar felet. Det är en kortform för att fånga och vidarebefordra, vilket håller koden ren. ✅
Lär dig Zig med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Propagera fel med try” gratis?
Ja – hela texten till ”Propagera fel med try” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Zig Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Zig Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Propagera fel med try”?
Låt fel bubbla upp med ett enda nyckelord Ni övar på Zig Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Zig Academy?
Du behöver inga förkunskaper. Utbildningen i Zig Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Propagera fel med try”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Zig Academy-lektionen?
Ja. Varje Zig Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Error sets och !T-unionen
- Returnera fel från funktioner
- Propagera fel med try
- Härledda error sets