Não há sentido em pegar e jogar nu como você mostra. Ele não faz nada útil, exceto adicionar código e execução lenta. Então, se você for .catch()
e relançar, deve haver algo que você deseja fazer no .catch()
, caso contrário, você deve apenas remover o.catch()
inteiramente.
O ponto usual para essa estrutura geral é quando você deseja executar algo no .catch()
, como registrar o erro ou limpar algum estado (como fechar arquivos), mas deseja que a cadeia de promessa continue como rejeitada.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
Em um tutorial, pode estar lá apenas para mostrar às pessoas onde eles podem detectar erros ou para ensinar o conceito de como lidar com o erro e, em seguida, relançá-lo.
Algumas das razões úteis para captura e relançamento são as seguintes:
- Você quer registrar o erro , mas manter a cadeia de promessa como rejeitada.
- Você quer transformar o erro em algum outro erro (geralmente para facilitar o processamento de erros no final da cadeia). Nesse caso, você relançaria um erro diferente.
- Você deseja fazer um monte de processamento antes que a cadeia de promessa continue (como recursos fechar / liberar), mas deseja que a cadeia de promessa continue rejeitada.
- Você deseja um local para colocar um ponto de interrupção para o depurador neste ponto da cadeia de promessa, se houver uma falha.
Mas, uma simples captura e relançamento do mesmo erro sem nenhum outro código no manipulador de captura não faz nada útil para a execução normal do código.