Manejo de errores
¡Los errores lanzados son algo positivo! Significan que el entorno de ejecución ha identificado correctamente cuándo algo ha fallado en tu programa y te lo notifica deteniendo la ejecución en la pila actual, finaliza el proceso (en Node) y muestra en la consola una traza de la pila.
No ignores los errores capturados
No hacer nada con un error capturado te impide solucionarlo o reaccionar. Registrar el error en la consola (console.log) no es mejor, ya que suele perderse entre otros mensajes. Si envuelves cualquier fragmento de código en un try/catch, significa que anticipas un error y por lo tanto debes tener un plan definido para cuando ocurra.
Incorrecto:
javascript
try {
functionThatMightThrow();
} catch (error) {
console.log(error);
}Correcto:
javascript
try {
functionThatMightThrow();
} catch (error) {
// One option (more noisy than console.log):
console.error(error);
// Another option:
notifyUserOfError(error);
// Another option:
reportErrorToService(error);
// OR do all three!
}No ignores promesas rechazadas
Por el mismo motivo, no debes ignorar errores capturados en try/catch.
Incorrecto:
javascript
getdata()
.then(data => {
functionThatMightThrow(data);
})
.catch(error => {
console.log(error);
});Correcto:
javascript
getdata()
.then(data => {
functionThatMightThrow(data);
})
.catch(error => {
// One option (more noisy than console.log):
console.error(error);
// Another option:
notifyUserOfError(error);
// Another option:
reportErrorToService(error);
// OR do all three!
});