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
Hinweis: Dieser Artikel wurde von jemand anderem ü...
Der Browser zeigt Bilder im TIF-Format an Code kop...
Im vorherigen Artikel wurde die Implementierungsm...
Das Textfeld mit dem ReadOnly-Attribut wird auf de...
beschreiben Dieser Artikel stellt eine Methode zu...
Inhaltsverzeichnis 1. Grundlagen 1.Referenz 2. to...
Beim Erstellen einer B/S-Systemschnittstelle stößt...
In diesem Artikelbeispiel wird der spezifische Co...
HTML-Eingabeattribute Das Value-Attribut Das Valu...
Wie wird die MySQL-Select-Anweisung ausgeführt? I...
Starten Sie alle gestoppten Docker-Container mit ...
Inhaltsverzeichnis 1. Zwei setState, wie oft soll...
Heutige Aufgaben 1. Wahl der Linux-Distribution 2...
Inhaltsverzeichnis Zusammenfassung der Verzögerun...
Ich habe schon lange keinen Blog mehr geschrieben...