Vorne geschriebenUnabhängig davon, wie gut der Code geschrieben ist, ist es unmöglich, alle möglichen Ausnahmen vollständig zu behandeln. Dies gilt insbesondere für Anwendungen in Produktionsumgebungen, in denen ein großer Teil der Daten von Benutzern und Remotestandorten stammt und es schwierig ist, sicherzustellen, dass alle Daten wie vom Programm angegeben generiert werden. Tatsächlich gibt es keine Möglichkeit, davon zu erfahren, es sei denn, es wird von einem Tester entdeckt oder von einem Kunden gemeldet. Daher ist es sehr wichtig, die von der Anwendung generierten unbekannten Ausnahmen zu melden. Angular bietet standardmäßig auch eine globale Ausnahmeverwaltung. Wenn eine Ausnahme auftritt, wird sie an die Konsole gesendet. Wenn Sie NG-ZORRO verwenden, werden Sie häufig auf Ausnahmemeldungen stoßen, dass ICON nicht geladen ist. Dies ist auch eine Art von Ausnahmemeldung: core.js:5980 FEHLER Fehler: [@ant-design/icons-angular]:das Symbol „setting-o“ existiert nicht oder ist nicht registriert. bei IconNotFoundError (ant-design-icons-angular.js:94) bei MapSubscriber.project (ant-design-icons-angular.js:222) bei MapSubscriber._next (map.js:29) bei MapSubscriber.next (Subscriber.js:49) bei RefCountSubscriber._next (Subscriber.js:72) bei RefCountSubscriber.next (Subscriber.js:49) bei Subject.next (Subject.js:39) bei ConnectableSubscriber._next (Subscriber.js:72) bei ConnectableSubscriber.next (Subscriber.js:49) bei CatchSubscriber.notifyNext (innerSubscribe.js:42) Angular verwaltet Ausnahmemeldungen einheitlich über ErrorHandler und Sie müssen nur die Methode handleError überschreiben und die Ausnahmemeldung erneut verarbeiten. FehlerhandlerErstellen Sie zunächst eine Datei custom-error-handler.ts: importiere { ErrorHandler, Injectable } von '@angular/core'; @Injizierbar() exportiere Klasse CustomErrorHandler erweitert ErrorHandler { handleError(Fehler: beliebig): void { super.handleError(Fehler); } } CustomErrorHandler kann die aktuellen Benutzerdaten, das aktuelle Ausnahmemeldungsobjekt usw. vollständig abrufen und die Berichterstellung an das Backend über HttpClient ermöglichen. Nachfolgend finden Sie die Dokumentationsseite von NG-ALAIN. Da zur Analyse Google Analytics verwendet wird, müssen wir die Ausnahmemeldung nur an onerror weiterleiten: importiere { DOKUMENT } von '@angular/common'; importiere { ErrorHandler, Inject, Injectable } von '@angular/core'; @Injizierbar() exportiere Klasse CustomErrorHandler erweitert ErrorHandler { Konstruktor(@Inject(DOKUMENT) privates Dokument: beliebig) { super(); } handleError(Fehler: beliebig): void { versuchen { super.handleError(Fehler); } fangen (e) { dies.reportError(e); } dies.reportError(Fehler); } privater Fehlerbericht(Fehler: Zeichenfolge | Fehler): void { const win = this.doc.defaultView als beliebig; wenn (gewinnen && gewinnen.beiFehler) { wenn (Fehlertyp === 'Zeichenfolge') { win.onerror(Fehler); } anders { win.onerror(Fehlernachricht, undefiniert, undefiniert, undefiniert, Fehler); } } } } Registrieren Sie abschließend den CustomErrorHandler im AppModule: @NgModule({ Anbieter: { bereitstellen: ErrorHandler, verwendenKlasse: CustomErrorHandler }, ] }) exportiere Klasse AppModule { } abschließendTatsächlich gibt es noch eine weitere sehr wichtige Aufgabe. Die Dateien in der Produktionsumgebung werden verpackt und komprimiert. Mit anderen Worten, die generierte Ausnahmemeldung kann nicht mit der tatsächlichen Anzahl der Codezeilen übereinstimmen. Dies erfordert die Unterstützung von SourceMap. Natürlich wird die normale Produktionsumgebung diese Datei nicht veröffentlichen. Wenn Sie also die richtige Anzahl von Zeilen und Spalten erhalten möchten, müssen Sie dennoch eine Zwischenebene verwenden und das Source-Map-Modul im Backend verwenden, um die tatsächlichen Zeilen- und Spaltenwerte zu analysieren. Mithilfe des Dependency-Injection-Systems (DI) von Angular können wir einige in Angular integrierte Module schnell ersetzen und so einige spezielle Anforderungen schnell lösen, ohne die Geschäftsebene zu ändern. ZusammenfassenDies ist das Ende dieses Artikels darüber, wie Angular unerwartete Ausnahmefehler behandelt. Weitere Informationen dazu, wie Angular unerwartete Ausnahmefehler behandelt, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: React-native-Beispielcode zur Implementierung des Schiebelöscheffekts des Einkaufswagens
>>: Detaillierte Erläuterung der Wissenspunkte zur asynchronen Programmierung in nodejs
Vorwort In der täglichen Entwicklung stoßen wir h...
Inhaltsverzeichnis Vorwort Der Unterschied zwisch...
Perfekte Lösung für das skalierbare Spaltenproble...
Verwendung von neuen Die Funktion von new besteht...
Inhaltsverzeichnis Variable Verwenden Sie aussage...
Verwenden Sie den folgenden Terminalbefehl, um de...
In diesem Artikelbeispiel wird der spezifische Co...
Dieses Tag ist nicht Teil von HTML3.2 und unterstü...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel wird der spezifische Code von J...
Die Riddle-Sicherheitslücke, die auf die MySQL-Ve...
Inhaltsverzeichnis Hintergrund Lösung 1: Alte Dat...
Einführung Es ist nicht nötig, Redis im Detail vo...
In diesem Artikel wird der spezifische Code von j...
Manchmal müssen Sie bei der Arbeit ein Remote-Deb...