DevPath · Aprende a programar ESPTEN

Manejo de errores

Tipos de error y errores personalizados

Tipos de error integrados

JavaScript define varios tipos de error, todos descendientes de Error:

Tipo Cuándo aparece
Error Error genérico
TypeError Un valor no es del tipo esperado (ej. llamar algo que no es función)
RangeError Un valor está fuera del rango permitido
SyntaxError Código mal formado (ej. JSON inválido)
ReferenceError Usar una variable que no existe

Puedes comprobar el tipo con instanceof:

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

Errores personalizados

Para errores propios de tu dominio (por ejemplo, "saldo insuficiente"), crea una clase que extienda Error:

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

throw new SaldoInsuficienteError("No tienes saldo suficiente");

Esto te permite distinguir tus errores de los del sistema y manejarlos de forma específica en el catch.

Ejemplos

Un error personalizado

class ValidacionError extends Error {
  constructor(mensaje) {
    super(mensaje);
    this.name = "ValidacionError";
  }
}
try {
  throw new ValidacionError("Campo obligatorio");
} catch (e) {
  console.log(e.name + ": " + e.message);
  console.log("¿Es Error?", e instanceof Error);
}
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Lanzar errores con throwVer el módulo →