Usare switch su errori specifici
Creare diramazioni in base all'errore restituito
Usare switch su errori specifici è 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.
Non tutti gli errori sono uguali
Un solo valore alternativo raramente è adatto a ogni fallimento. Un file mancante e un input non valido spesso richiedono gestioni diverse, quindi è necessario diramare in base all'errore che si è verificato.
Catturare, poi usare switch
Catturi l'errore da catch, poi lo passi a uno switch. Ogni caso può reagire a uno specifico errore a modo proprio.
open(path) catch |err| switch (err) {
error.NotFound => create(path),
else => return err,
};Gli errori sono valori di switch
Un errore come error.NotFound è un valore normale, quindi switch lo confronta proprio come confronta un intero o un tag di enum.
switch (err) {
error.Timeout => retry(),
error.Denied => reportDenied(),
}switch deve essere esaustivo
Uno switch su un errore deve coprire ogni errore possibile dell'insieme. Zig rifiuta di compilare il codice anche se manca un solo caso.
Copra il resto con else
Aggiunga un ramo else per intercettare gli errori che non ha indicato. In questo modo switch resta esaustivo senza dover elencare ogni variante.
switch (err) {
error.NotFound => createDefault(),
else => return err,
}Ogni ramo restituisce un valore
Poiché switch è un'espressione, ogni ramo può produrre un valore. L'intero catch restituisce quindi ciò che fornisce il ramo corrispondente.
const n = parse(s) catch |e| switch (e) {
error.Empty => 0,
else => -1,
};Raggruppare gli errori con le virgole
Elenchi più errori in un unico ramo, separandoli con virgole, quando condividono la stessa risposta. In questo modo i casi correlati restano ordinati e raggruppati.
switch (err) {
error.Timeout, error.Reset => retry(),
else => return err,
}Rilanciare ciò che non può gestire
In un ramo può usare return per restituire l'errore e passarlo al livello superiore. Gestisca i casi che conosce e lasci il resto al chiamante.
else => return err,Abbinarlo prima a try
Spesso si usa try per il percorso comune e si applica switch solo agli errori che richiedono davvero una logica personalizzata, mantenendo pulito il percorso positivo.
Chiarezza attraverso la specificità
Usare switch sugli errori documenta esattamente quali fallimenti prevede. Il lettore vede ogni caso e il modo in cui il codice vi reagisce.
Il compilatore la protegge
Poiché lo switch deve essere completo, l'aggiunta successiva di un nuovo errore la obbliga a gestirlo. I casi mancanti diventano errori di build, non bug.
Verifica rapida
Usa switch su un errore catturato, ma elenca solo alcune varianti. Che cosa richiede Zig?
Riepilogo
Ha catturato un errore e usato switch per diramare in base all'errore, raggruppare i casi correlati e rilanciare il resto. Il compilatore ne garantisce la completezza. ✅
Domande Frequenti
La lezione «Usare switch su errori specifici» è gratuita?
Sì — il testo completo di «Usare switch su errori specifici» è 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 «Usare switch su errori specifici»?
Creare diramazioni in base all'errore restituito 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 «Usare switch su errori specifici»?
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
- Recuperare con catch
- Usare switch su errori specifici
- errdefer per la pulizia in caso di errore
- Avvolgere e rilanciare gli errori