0Pricing
Zig Academy · Lezione

Restituire errori dalle funzioni

Rendere esplicito il fallimento nelle firme

Restituire errori dalle funzioni è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.

Il fallimento nella signature

Quando una funzione può fallire, lo indichi nel suo tipo restituito. Una union con errore come ParseError!u32 avvisa in anticipo ogni chiamante.

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

Restituire il valore in caso di successo

Nel percorso di successo basta restituire normalmente il payload. Zig racchiude automaticamente quel valore semplice nel lato della union relativo al successo.

return 42;

Restituire invece un errore

Per segnalare un fallimento, restituisca uno dei Suoi errori nello stesso punto. La singola istruzione return stabilisce quale lato della union produrre.

if (s.len == 0) return error.Empty;

Un return, due esiti

Una funzione con una union con errore può restituire un valore in un ramo e un errore in un altro. Entrambi soddisfano il tipo dichiarato.

if (ok) return value;
return error.Failed;

Void più errori

Una funzione che esegue un'operazione ma non produce alcun valore può comunque fallire. Usi !void per restituire nulla in caso di successo o un errore in caso di fallimento.

fn save() !void {
    // ...
}

Gli errori risalgono al punto di chiamata

Quando chiama una funzione che può fallire, riceve a sua volta una union con errore. Non può ignorarla: il compilatore La obbliga a gestirla.

const n = parse(input);

Catturare gli errori con if

Un if può separare la union: catturi il valore nel ramo principale e l'errore dopo else, assegnando un nome a ciascuno con una pipe.

if (parse(input)) |n| {
    use(n);
} else |err| {
    report(err);
}

Dare un nome preciso all'error set

Elencare l'insieme esatto prima di ! mantiene il contratto coerente. Chi chiama conosce l'elenco completo dei fallimenti senza leggere il corpo della funzione.

fn open(p: []const u8) FileError!File {}

Gli errori attraversano i confini delle funzioni

Un errore restituito in profondità nel codice prosegue verso l'esterno solo quando ogni funzione della catena dichiara di poter fallire a sua volta.

Rendere esplicito il fallimento

Questo è il cuore della gestione degli errori in Zig: il fallimento non è mai nascosto. La signature è una promessa su ciò che può andare storto.

Il compilatore La protegge

Se dimentica di gestire un errore restituito, la build fallisce. Zig non permette che un possibile fallimento passi inosservato.

Verifica rapida

Una funzione esegue un'operazione ma non restituisce alcun valore utile, anche se può fallire. Quale tipo restituito è adatto?

Riepilogo

Ha dichiarato funzioni soggette a fallimento con !T, ha restituito valori o errori da un unico return e ha visto il compilatore obbligare i chiamanti a gestirli. ✅

Domande Frequenti

La lezione «Restituire errori dalle funzioni» è gratuita?

Sì — il testo completo di «Restituire errori dalle funzioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.

Cosa imparerò in «Restituire errori dalle funzioni»?

Rendere esplicito il fallimento nelle firme Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Zig Academy?

Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Restituire errori dalle funzioni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Zig Academy?

Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Set di errori e unione !T
  2. Restituire errori dalle funzioni
  3. Propagare i fallimenti con try
  4. Set di errori inferiti
← Torna a Zig Academy