Selecionando erros específicos
Faça desvios de acordo com o erro retornado.
Selecionando erros específicos é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.
Nem todos os erros são iguais
Um único valor alternativo raramente serve para todas as falhas. Um arquivo ausente e uma entrada inválida geralmente precisam de tratamentos diferentes, portanto você precisa ramificar de acordo com o erro ocorrido.
Capture e use switch
Capture o erro de catch e depois passe-o para um switch. Cada caso pode responder a um erro específico de sua própria maneira.
open(path) catch |err| switch (err) {
error.NotFound => create(path),
else => return err,
};Erros são valores de switch
Um erro como error.NotFound é um valor comum, portanto switch faz correspondência com ele da mesma forma que faria com um inteiro ou uma opção de enumeração.
switch (err) {
error.Timeout => retry(),
error.Denied => reportDenied(),
}switch deve ser exaustivo
Um switch sobre um erro precisa abranger todos os erros possíveis do conjunto. O Zig se recusa a compilar se faltar até mesmo um caso.
Cubra o restante com else
Adicione um ramo else para capturar qualquer erro que você não tenha nomeado. Assim, o switch continua exaustivo sem listar cada variante.
switch (err) {
error.NotFound => createDefault(),
else => return err,
}Cada ramo retorna um valor
Como switch é uma expressão, cada ramo pode produzir um valor. O catch inteiro então produz o que o ramo correspondente devolver.
const n = parse(s) catch |e| switch (e) {
error.Empty => 0,
else => -1,
};Agrupe erros com vírgulas
Liste vários erros em um único ramo, separados por vírgulas, quando eles compartilharem uma resposta. Isso mantém os casos relacionados organizados e juntos.
switch (err) {
error.Timeout, error.Reset => retry(),
else => return err,
}Relance o que você não puder tratar
Em um ramo, você pode return o erro para passá-lo adiante. Trate os casos que entende e deixe o chamador lidar com o restante.
else => return err,Combine primeiro com try
Muitas vezes, você usa try no caminho comum e só faz um switch nos erros que realmente precisam de lógica personalizada, mantendo o caminho de sucesso limpo.
Clareza por meio da especificidade
Fazer switch sobre erros documenta exatamente quais falhas você espera. O leitor vê cada caso e como seu código reage a ele.
O compilador protege você
Como o switch precisa ser completo, adicionar um novo erro posteriormente obriga você a tratá-lo. Casos esquecidos tornam-se erros de compilação, não bugs.
Verificação rápida
Você faz switch sobre um erro capturado, mas lista apenas algumas variantes. O que o Zig exige?
Recapitulação
Você capturou um erro e usou switch para ramificar por erro, agrupar casos relacionados e relançar o restante. O compilador mantém tudo completo. ✅
Perguntas Frequentes
A aula “Selecionando erros específicos” é grátis?
Sim — o texto completo de “Selecionando erros específicos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.
O que vou aprender em “Selecionando erros específicos”?
Faça desvios de acordo com o erro retornado. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Zig Academy?
Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Selecionando erros específicos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Zig Academy?
Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Recuperando-se com catch
- Selecionando erros específicos
- errdefer para limpeza após falhas
- Encapsulando e relançando erros