El bloque try...catch es la herramienta fundamental para el manejo de excepciones en programación.
Su objetivo principal es evitar que una aplicación se caiga (se "rompa") por completo cuando algo sale mal.
try (intentar): Aquí se mete el código que podría fallar. Por ejemplo, leer un archivo que tal vez no exista, hacer una petición a internet, o procesar datos que envía un usuario.catch (capturar error): Si algo falla dentro del bloque try, la ejecución se detiene inmediatamente y salta a este bloque. Aquí decides qué hacer con el error (mostrar un mensaje, guardarlo en un registro, etc.).finally (finalmente - Opcional): Este bloque se ejecuta siempre, tanto si hubo un error como si todo salió bien. Se usa mucho para tareas de limpieza (como cerrar una conexión a una base de datos o detener un "spinner").catch vacío: La idea del catch (error) {} es informar sobre el tipo de error que se ha sucedido. Si algo falla como mínimo deberá informarse con un console.error.try...catch para validaciones: Usa try...catch para situaciones extraordinarias o errores que no puedes controlar del todo, no para flujos normales que podrías resolver con un simple if.try ... catchtry...catch se utiliza para capturar errores en estos casos:
JSON.parse).(localStorage, sensores, portapapeles...) donde el entorno del usuario pueda bloquearte.
fetch o Axios.Para hacer peticiones HTTP se utiliza una librería llamada Axios para hacer peticiones, justamente porque maneja los errores de una forma mucho más intuitiva que fetch.
En Axios, cualquier fallo (tanto si el servidor está caído como si se devuelve un error 404 o 500) va a parar directamente al catch. Además, Axios proporciona un objeto de error especializado llamado AxiosError.
throw new Error.Es mala práctica: Usar throw y catch para validar cosas normales que se arreglan con un if (ej. campos vacíos, contraseñas cortas).
Es buena práctica: Usar throw en funciones importantes para blindarlas contra bugs de otros programadores (o en el futuro), asegurando que el programa falle inmediatamente si se violan las reglas críticas del negocio.
En JavaScript, todos los errores heredan de un objeto base llamado Error. El motor del navegador o de Node.js incluye los siguientes errores nativos principales:
TypeError: Ocurre cuando un valor no es del tipo esperado. Ejemplos:
const x = 5; x();undefined.ReferenceError: Ocurre cuando intentas usar una variable que no ha sido declarada.
Ejemplo: console.log(variableQueNoExiste);
SyntaxError: El código está mal escrito y el motor de JS no puede ni siquiera empezar a leerlo.
Ejemplo: if (x = 5 { // Falta el paréntesis de cierre
RangeError: Ocurre cuando un valor numérico está fuera de los rangos permitidos.
Ejemplo: Crear un array con una longitud negativa: new Array(-1);
URIError: Ocurre cuando se usan de forma incorrecta las funciones para codificar o decodificar URLsdecodeURIComponent()).
error:En JavaScript, la variable dentro de catch(error) suele tener dos propiedades muy útiles por defecto: error.name (el nombre del tipo de error, ej: "TypeError") y error.message (la descripción del problema en texto humano).
Dentro del catch utilizamos el operador instanceof para preguntar: "¿Este error es una instancia de TypeError?".