Non ha senso prendere e lanciare nudi mentre mostri. Non fa nulla di utile tranne che aggiungere codice e l'esecuzione lenta. Quindi, se hai intenzione di .catch()
rilanciare, dovrebbe esserci qualcosa che vuoi fare in .catch()
, altrimenti dovresti semplicemente rimuovere .catch()
completamente.
Il punto normale per quella struttura generale è quando si desidera eseguire qualcosa .catch()
come registrare l'errore o ripulire uno stato (come i file chiusi), ma si desidera che la catena di promesse continui come rifiutata.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
In un tutorial, potrebbe essere lì solo per mostrare alle persone dove possono rilevare gli errori o per insegnare il concetto di gestire l'errore, quindi rilanciarlo.
Alcuni dei motivi utili per la cattura e il rilancio sono i seguenti:
- Si desidera registrare l'errore , ma mantenere la catena di promesse rifiutata.
- Volete trasformare l'errore in qualche altro errore (spesso per una più facile elaborazione degli errori alla fine della catena). In questo caso, rilanceresti un errore diverso.
- Si desidera eseguire un po 'di elaborazione prima che la catena di promesse continui (come risorse chiuse / libere) ma si desidera che la catena di promesse rimanga rifiutata.
- Si desidera un punto in cui inserire un punto di interruzione per il debugger a questo punto della catena di promesse se si verifica un errore.
Tuttavia, una semplice cattura e rilancio dello stesso errore senza altro codice nel gestore di cattura non fa nulla di utile per il normale funzionamento del codice.