Es hat keinen Sinn, nackt zu fangen und zu werfen, wie Sie zeigen. Es macht nichts Nützliches außer dem Hinzufügen von Code und der langsamen Ausführung. Wenn Sie also gehen .catch()
und erneut werfen, sollte es etwas geben, das Sie in der tun möchten .catch()
, andernfalls sollten Sie das einfach .catch()
vollständig entfernen .
Der übliche Punkt für diese allgemeine Struktur ist, wenn Sie etwas ausführen möchten, .catch()
z. B. den Fehler protokollieren oder einen Status bereinigen möchten ( z. B. Dateien schließen), die Versprechen-Kette jedoch als abgelehnt fortgesetzt werden soll.
promise.then(function(result){
//some code
}).catch(function(error) {
// log and rethrow
console.log(error);
throw error;
});
In einem Tutorial kann es nur dazu dienen, Personen zu zeigen, wo sie Fehler abfangen können, oder das Konzept des Umgangs mit dem Fehler zu lehren und ihn dann erneut zu werfen.
Einige der nützlichen Gründe für das Fangen und Umwerfen sind folgende:
- Sie möchten den Fehler protokollieren , aber die Versprechen-Kette als abgelehnt beibehalten.
- Sie möchten den Fehler in einen anderen Fehler umwandeln (häufig zur einfacheren Fehlerverarbeitung am Ende der Kette). In diesem Fall würden Sie einen anderen Fehler erneut auslösen.
- Sie möchten eine Reihe von Verarbeitungen durchführen, bevor die Versprechen-Kette fortgesetzt wird (z. B. enge / freie Ressourcen), aber Sie möchten, dass die Versprechen-Kette abgelehnt bleibt.
- Sie möchten, dass ein Punkt an dieser Stelle in der Versprechen-Kette einen Haltepunkt für den Debugger setzt , wenn ein Fehler auftritt.
Ein einfaches Abfangen und erneutes Auslösen desselben Fehlers ohne anderen Code im catch-Handler ist jedoch für die normale Ausführung des Codes nicht hilfreich.