No tiene sentido atrapar y lanzar como muestra. No hace nada útil excepto agregar código y ejecución lenta. Por lo tanto, si va a .catch()volver a lanzar, debe haber algo que desee hacer en el .catch(), de lo contrario, debe eliminar por .catch()completo.
El punto habitual para esa estructura general es cuando desea ejecutar algo .catch()como registrar el error o limpiar algún estado (como cerrar archivos), pero desea que la cadena de promesa continúe como rechazada.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
En un tutorial, puede estar ahí solo para mostrar a las personas dónde pueden detectar errores o para enseñar el concepto de cómo manejar el error y luego volver a lanzarlo.
Algunas de las razones útiles para atrapar y volver a lanzar son las siguientes:
- Desea registrar el error , pero mantenga la cadena de promesa como rechazada.
- Quieres convertir el error en otro error (a menudo para facilitar el procesamiento de errores al final de la cadena). En este caso, volvería a generar un error diferente.
- Desea realizar un montón de procesamiento antes de que continúe la cadena de promesas (como recursos cerrados / libres) pero desea que la cadena de promesas permanezca rechazada.
- Desea un lugar para colocar un punto de interrupción para el depurador en este punto de la cadena de promesa si hay una falla.
Pero, una simple captura y repetición del mismo error sin otro código en el controlador de captura no hace nada útil para la ejecución normal del código.