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);
}