0Pricing
Zig Academy · Aula

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

  1. Recuperando-se com catch
  2. Selecionando erros específicos
  3. errdefer para limpeza após falhas
  4. Encapsulando e relançando erros
← Voltar para Zig Academy