DevPath · Aprende a programar ESPTEN

Manejo de errores

Lanzar errores con throw

Lanzar tus propios errores

A veces quieres provocar un error porque has detectado una situación inválida. Para eso se usa throw:

function raizCuadrada(n) {
  if (n < 0) {
    throw new Error("No se puede sacar la raíz de un número negativo");
  }
  return Math.sqrt(n);
}

Cuando se ejecuta throw, la función se interrumpe inmediatamente y el control sube buscando un catch que lo maneje.

Lanza objetos Error, no cadenas

Aunque throw "texto" es válido, lanza siempre un objeto Error (o una subclase). Los objetos Error llevan un message, un name y una traza (stack) que ayudan a depurar:

throw new Error("Mensaje descriptivo");

Validar entradas: una buena costumbre

Lanzar errores tempranos cuando los argumentos no son válidos hace tu código más predecible. Es preferible fallar pronto y con un mensaje claro que producir un resultado incorrecto silencioso.

Ejemplos

Validar argumentos lanzando un error

function dividir(a, b) {
  if (b === 0) {
    throw new Error("No se puede dividir por cero");
  }
  return a / b;
}
try {
  console.log(dividir(10, 2));
  console.log(dividir(10, 0));
} catch (e) {
  console.log("Capturado:", e.message);
}
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 →
← try, catch y finallyTipos de error y errores personalizados →