JavaScriptMódulos e Errosintermediario

Classe de erro customizada

Em APIs e sistemas reais, diferentes erros exigem tratamentos diferentes. Criar classes de erro customizadas permite que você identifique e trate cada tipo de falha separadamente — como validar formulários com ValidationError ou capturar falhas de rede com NetworkError. Isso torna o código mais limpo e fácil de depurar.

O PROBLEMA

Crie classes ValidationError, NotFoundError, NetworkError. Cada uma com código específico.

EXEMPLO

class ValidationError extends Error {
  constructor(campo, msg) {
    super(msg);
    this.name = "ValidationError";
    this.campo = campo;
  }
}

SOBRE O CONCEITO

Para criar uma classe de erro customizada, você estende a classe Error e chama super(message) no construtor para definir a mensagem. Depois, atualiza this.name com o nome da classe. Um erro comum é esquecer super(message), o que deixa this.message vazio. Outro erro é não alterar this.name, fazendo com que o erro herde o nome "Error" da classe pai. Você também pode adicionar propriedades extras, como this.statusCode ou this.code. Por exemplo: class ValidationError extends Error { constructor(campo, msg) { super(msg); this.name = "ValidationError"; this.campo = campo; } }. Use throw new ValidationError('email', 'Inválido') para lançar e if (err instanceof ValidationError) para capturar. As palavras-chave permitidas são class, extends, super, constructor, this, new, throw e instanceof. Evite usar function ou objetos literais para criar erros.

RESOLUÇÃO

Mais exercícios de Módulos e Erros

JSM003 · BásicoTipos de erroJSM005 · BásicoError propertiesJSM006 · BásicoExport nomeadoJSM008 · BásicoImport * as
Ver todos os exercícios de JavaScript