excepciones-en-javascript

Cómo usar excepciones en JavaScript

  • 3 min

Las excepciones son eventos que ocurren durante la ejecución de un programa que interrumpen su flujo normal (generalmente representa un error ocurrido en el programa).

Cuando se lanza una excepción, se interrumpe la ejecución del código normal y el control se transfiere al manejador de excepciones (try…catch) más cercano, si existe.

Es decir, cuando se produce una Excepcion esta puede,

  • Ser capturada por un bloque try-catch
  • Si no, pasa a la función que invocó a la que genero el error

Si no se maneja, el programa se detiene 💥

Lanzar excepciones

Podemos lanzar excepciones en JavaScript utilizando la palabra clave throw. Esto permite indicar que ha ocurrido un error y proporcionar información adicional sobre él.

La sintaxis es la siguiente:

throw new Error("Mensaje de error");

Veamos un ejemplo sencillo:

function validarEdad(edad) {
    if (edad < 18) {
        throw new Error("La edad debe ser al menos 18 años.");
    }
    return "Edad válida";
}

try {
    console.log(validarEdad(15));
} catch (error) {
    console.error("Se produjo un error:", error.message);
}

En este caso,

  • Si se pasa una edad menor a 18, se lanzará una excepción
  • Esta se manejará en el bloque catch.

Creación de excepciones personalizadas

Además de lanzar excepciones estándar, podemos crear nuestras propias excepciones personalizadas. Esto sirve para proporcionar información más específica sobre los errores en tu aplicación.

Para crear una excepción personalizada, puedes extender la clase Error de JavaScript:

class MiExcepcion extends Error {
    constructor(mensaje) {
        super(mensaje);
        this.name = "MiExcepcion"; // Establece el nombre de la excepción
    }
}

Vamos a verlo en un ejemplo de cómo usar una excepción personalizada:

function validarNombre(nombre) {
    if (typeof nombre !== 'string' || nombre.length === 0) {
        throw new MiExcepcion("El nombre debe ser una cadena no vacía.");
    }
    return "Nombre válido";
}

try {
    console.log(validarNombre("")); // Lanzará una excepción
} catch (error) {
    console.error(`${error.name}: ${error.message}`);
}

En este caso,

  • MiExcepcion se utiliza para lanzar un error específico relacionado con la validación de un nombre