Il ne sert à rien de prendre et lancer nus comme vous le montrez. Il ne fait rien d'utile sauf ajouter du code et ralentir l'exécution. Donc, si vous voulez .catch()
relancer, il devrait y avoir quelque chose que vous voulez faire dans le .catch()
, sinon vous devriez simplement supprimer .catch()
complètement le.
Le point habituel de cette structure générale est lorsque vous voulez exécuter quelque chose dans le .catch()
tel que consigner l'erreur ou nettoyer un état (comme fermer des fichiers), mais que vous voulez que la chaîne de promesses continue comme rejetée.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
Dans un didacticiel, il peut être là simplement pour montrer aux gens où ils peuvent détecter des erreurs ou pour enseigner le concept de gestion de l'erreur, puis la renvoyer.
Certaines des raisons utiles pour attraper et relancer sont les suivantes:
- Vous souhaitez consigner l'erreur , mais gardez la chaîne de promesse comme rejetée.
- Vous voulez transformer l'erreur en une autre erreur (souvent pour faciliter le traitement des erreurs à la fin de la chaîne). Dans ce cas, vous renverriez une erreur différente.
- Vous souhaitez effectuer un certain nombre de traitements avant que la chaîne de promesse ne se poursuive (par exemple, fermer / libérer des ressources), mais vous voulez que la chaîne de promesse reste rejetée.
- Vous voulez un emplacement pour placer un point d'arrêt pour le débogueur à ce stade de la chaîne de promesse en cas d'échec.
Mais, une simple capture et relance de la même erreur sans autre code dans le gestionnaire de capture ne fait rien d'utile pour l'exécution normale du code.