Skip to content

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!
  });