DevPath · Aprenda a programar ESPTEN

Tratamento de erros

Tipos de erro e erros personalizados

Tipos de erro integrados

O JavaScript define vários tipos de erro, todos descendentes de Error:

Tipo Quando aparece
Error Erro genérico
TypeError Um valor não é do tipo esperado (ex.: chamar algo que não é função)
RangeError Um valor está fora do intervalo permitido
SyntaxError Código malformado (ex.: JSON inválido)
ReferenceError Usar uma variável que não existe

Você pode verificar o tipo com instanceof:

try {
  null.metodo();
} catch (e) {
  console.log(e instanceof TypeError); // true
}

Erros personalizados

Para erros específicos do seu domínio (por exemplo, "saldo insuficiente"), crie uma classe que estenda Error:

class SaldoInsuficienteError extends Error {
  constructor(mensagem) {
    super(mensagem);
    this.name = "SaldoInsuficienteError";
  }
}

throw new SaldoInsuficienteError("Você não tem saldo suficiente");

Isto permite diferenciar seus erros dos do sistema e tratá-los de forma específica no catch.

Exemplos

Um erro personalizado

class ValidacaoError extends Error {
  constructor(mensagem) {
    super(mensagem);
    this.name = "ValidacaoError";
  }
}
try {
  throw new ValidacaoError("Campo obrigatório");
} catch (e) {
  console.log(e.name + ": " + e.message);
  console.log("É um Error?", e instanceof Error);
}
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Lançar erros com throwVer o módulo →