JavaScript:
Manejo de errores
Cómo hacerlo:
Aquí está el clásico bloque try-catch
:
try {
// Código que podría lanzar un error
let result = operacionPotencialmenteRiesgosa();
console.log('Éxito:', result);
} catch (error) {
// Qué hacer si se lanza un error
console.error('Oops:', error.message);
}
Salida de muestra cuando no ocurre error:
Éxito: 42
Y cuando hay un error:
Oops: Algo salió mal
Para código asíncrono, donde se involucran promesas, utiliza try-catch
en una función async
:
async function fetchData() {
try {
let data = await fetch('https://api.ejemplo.com/data');
console.log('Datos obtenidos:', data);
} catch (error) {
console.error('Error al obtener datos:', error.message);
}
}
fetchData();
Inmersión Profunda
El manejo de errores en JavaScript ha evolucionado. En los viejos tiempos (ES3, circa 1999), solo teníamos el bloque try-catch
. No era súper flexible, pero hacía el trabajo.
ES6 (2015) introdujo Promesas y nos dio .then()
y .catch()
, permitiéndonos manejar errores asíncronos de una manera más elegante.
fetch('https://api.ejemplo.com/data')
.then(data => console.log('Datos obtenidos:', data))
.catch(error => console.error('Error al obtener datos:', error.message));
En cuanto a los detalles de implementación, cuando se lanza un error, los motores de JavaScript crean un objeto Error
con propiedades útiles como message
y stack
. También puedes hacer tipos de errores personalizados extendiendo la clase Error
– útil para aplicaciones más complejas.
¿Alternativas? Podrías ignorar el manejo de errores (mala idea), usar callbacks con parámetros que primero indican el error (hola, estilo Node.js), o ponerte más sofisticado con bibliotecas y frameworks que ofrecen sus propias soluciones.
Ver También
Para más sobre manejo de errores:
- MDN sobre try-catch: MDN try…catch
- Async/Await: MDN función async
- Una guía para Promises: MDN Promises
- Crear y lanzar errores personalizados: MDN Error