Zum Inhalt springen

JavaScript-Promise-Fehlerbehandlung

JavaScript-Promises sind ein grundlegender Bestandteil der Verwaltung asynchroner Operationen und ermöglichen es Entwicklern, asynchrone Ereignisse flexibler und einfacher zu behandeln (siehe JavaScript: Promises). Fehlerbehandlung bei Promises ist entscheidend für das Schreiben robuster JavaScript-Code, der mit unerwarteten Problemen umgehen kann, ohne die Anwendung zum Absturz zu bringen.

Die Fehlerbehandlung bei Promises erfolgt mithilfe der Methode .catch() oder durch Übergabe eines zweiten Arguments an die Methode .then(). Beide Methoden bieten Möglichkeiten, Fehler zu verwalten und sich von ihnen zu erholen, die während der Ausführung asynchroner Operationen auftreten.

Verwendung der Methode .catch()

Die Methode .catch() wird verwendet, um alle Fehler abzufangen, die während der Ausführung der Promise-Kette auftreten.


Output appears here after Run.

Verwendung des zweiten Arguments von .then()

Alternativ kann .then() ein zweites Argument übergeben werden, um Fehler zu behandeln, die nach der Ausführung des Callbacks des ersten Arguments auftreten.


Output appears here after Run.

Erweiterte Techniken zur Fehlerbehandlung

Fehlerfluss in Ketten

Fehler sollten korrekt durch die Promise-Kette weitergegeben werden, damit sie auf der passenden Ebene behandelt werden. Wenn Sie beispielsweise den .catch()-Block vor den .then()-Block setzen, wird der .then()-Block trotzdem ausgeführt. Da .catch() die Promise-Kette auflöst (es sei denn, es wirft einen Fehler erneut), erhält das nachfolgende .then() undefined als Argument.

WARNING

Wenn Sie den .catch()-Block vor den .then()-Block setzen, wird jeder Fehler, der innerhalb von .then() ausgelöst wird, nicht vom vorhergehenden .catch() abgefangen. Er wird nur behandelt, wenn Sie danach einen weiteren .catch()-Block hinzufügen.


Output appears here after Run.

Bestimmte Fehler behandeln

JavaScript ermöglicht differenziertere Strategien zur Fehlerbehandlung, etwa das Filtern von Fehlern nach ihrem Typ oder den konkreten Umständen des Fehlers. Im folgenden Beispiel behandeln wir einen TypeError. Ein TypeError tritt typischerweise auf, wenn ein Wert nicht den erwarteten Typ hat und die gewünschte Operation daher nicht ausgeführt werden kann.


Output appears here after Run.

Best Practices für die Fehlerbehandlung bei Promises

  1. Geben Sie in catch-Blöcken immer Fehler zurück oder werfen Sie sie erneut, damit Fehler nicht stillschweigend ignoriert werden.
  2. Verketten Sie Promises korrekt, damit Fehler abgefangen und behandelt werden.
  3. Verwenden Sie bei Bedarf finally-Blöcke, um Aufräumarbeiten unabhängig vom Ergebnis des Promises auszuführen.

Implementierung eines finally-Blocks

Die Methode finally() wird verwendet, um nach dem Settlen von Promises einen Codeblock auszuführen, unabhängig vom Ergebnis.


Output appears here after Run.

Fazit

Eine effektive Fehlerbehandlung bei JavaScript-Promises ist entscheidend für die Entwicklung zuverlässiger und robuster Webanwendungen. Wenn Entwickler die Methoden .catch(), das zweite Argument von .then() und finally() verstehen und nutzen, können sie sicherstellen, dass ihre Anwendungen asynchrone Fehler elegant behandeln und unter verschiedenen Bedingungen reibungslos funktionieren. Der Einsatz dieser Methoden verbessert die Funktionalität und das Nutzererlebnis Ihrer JavaScript-Anwendungen. Hinweis: Wenn Sie mit async/await arbeiten, kapseln Sie Promise-Aufrufe in try/catch-Blöcke, um eine synchron wirkende Fehlerbehandlung zu erhalten.

Practice

What is the key concept to understand about promises in JavaScript error handling?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.