Eine der großen Errungenschaften von Angular.js ist das praktische Auslösen von Ausnahmen, da die Ausnahmemeldung oft genau angeben kann, warum Ihr Code abgestürzt ist. Große clientseitige Webanwendungen, die in zahlreichen Browsern auf der ganzen Welt ausgeführt werden, sind mit fehlenden Ausnahmen konfrontiert, und wenn diese erkannt werden, ist es möglich, den Fehler zu beheben und Benutzer zu gewinnen.
Bei der Behandlung von browser- und geräteübergreifenden Problemen ist es wichtig, diese Ausnahmemeldungen zu erhalten, da Ihre App möglicherweise korrekt und zuverlässig auf Ihrem Entwicklungscomputer ausgeführt wird, nicht jedoch auf den Browsern Ihrer Benutzer.
Die Lösung besteht darin, über einen automatisierten Ausnahmeverfolgungsdienst zu verfügen, und Raygun vereinfacht die Arbeit, indem es alle von Ihrer Angular-Web-App ausgelösten Ausnahmen empfängt, ohne dass Sie etwas tun müssen. Die Einrichtung geht wirklich schnell – befolgen Sie einfach die folgenden Schritte, um Raygun in Ihre Anwendung einzubinden.
Installieren
Laden Sie zunächst das kleine Raygun4JS-Skript herunter und fügen Sie es Ihrem Projekt hinzu. Es gibt drei Möglichkeiten, Folgendes zu erhalten:
Von Bower
Laden Sie es von NuGet herunter – Öffnen Sie in Visual Studio die Package Manager-Konsole und geben Sie Folgendes ein:
Manueller Download – Klicken Sie hier, um die Entwicklungsversion herunterzuladen oder komprimierte Version
Konfiguration
Als nächstes zitieren Sie dieses Skript. Wenn Sie statisches HTML verwenden, fügen Sie zur Seite oder zu Ihrem Modullader hinzu.
Rufen Sie abschließend den folgenden Code auf, um Raygun4JS einzurichten, bevor Ihre Hauptlogik von Angular ausgeführt wird:
Raygun.init('YOUR_API_KEY').attach();
Sie können für jede mit Raygun erstellte App einen API-Schlüssel generieren und in Ihrem Raygun-Dashboard darauf zugreifen – Sie haben eine 30-tägige kostenlose Testversion zum Testen.
Ausnahmen in Angular abfangen
Es gibt mindestens zwei Möglichkeiten, nicht behandelte Ausnahmen in Angular.js-Module einzufügen, indem Dekoratoren oder Fabriken verwendet werden. Diese beiden Methoden stellen Ihnen eine spezifische Implementierung von $ExceptionHandler zur Verfügung, und das oben erwähnte Raygun4JS sendet die Implementierung an Raygun.
Verwenden Sie einen Dekorateur
Das Dekoratormuster eignet sich sehr gut zum Einfügen von Verhalten in jeden Dienst, da es das ursprüngliche Verhalten nicht überschreibt, um die Trennung von Bedenken zwischen anderen gewünschten Funktionen sicherzustellen. Es zeichnet auch die Protokollierung und Verarbeitung auf. Ideale Möglichkeit, Ausnahmen zu behandeln kann im $provide-Dienst verwendet werden, den wir zur Implementierung unseres eigenen
verwenden werden$exceptionHandler 函数: app.config(function ($provide) { $provide.decorator("$exceptionHandler", ['$delegate', function($delegate) { return function (exception, cause) { Raygun.send(exception); $delegate(exception, cause); } }]) });
$delegate ist die Entität des Ausnahmehandlers, den wir aufrufen werden, um das ursprüngliche Verhalten der Ausgabe an die Konsole zu erhalten.
Sie können auch so viele andere Dienste erstellen, wie Sie benötigen:
$provide.decorator("$exceptionHandler", ['$delegate', '$log', function($delegate, $log) { return function (exception, cause) { $log.debug('Sending to Raygun'); Raygun.send(exception); $delegate(exception, cause); } }])
Je nachdem, welche Art von Fehler aus der Angular-Logik abgerufen wird, wird der Ursachenparameter ausgefüllt. Wenn in einer Fabrik oder einem Dienst eine Ausnahme auftritt, erhalten Sie möglicherweise den Bereich, in dem der Parameter liegen kann. Sie können ihn als benutzerdefiniert verwenden Daten, indem Sie den obigen Raygun.send-Aufruf zusammen mit allem anderen, was Sie benötigen, ersetzen und an Raygun übergeben:
Raygun.send(exception, { cause: cause });
Verwenden Sie eine Fabrik
Eine schnelle Möglichkeit, Raygun in den Ausnahmehandler Ihrer Anwendung einzufügen, ist die Verwendung einer Factory. Dabei wird jedoch das ursprüngliche Konsolenprotokoll entfernt, das gespeichert werden muss, wenn Sie diese Funktionalität beibehalten und erneut aufrufen möchten .
app.factory('$exceptionHandler', function () { return function (exception) { Raygun.send(exception); } });
Fehler beim manuellen Senden
Raygun4JS bietet Ihnen auch die Möglichkeit, Fehler jederzeit einfach manuell zu verfolgen:
Raygun.send(new Error('my custom error'));
Il existe de nombreux autres outils dont vous pouvez profiter sur le fournisseur, notamment le suivi unique des utilisateurs, le suivi des versions, les balises et bien plus encore – Voici la documentation pour voir toutes les informations de confiance pour .
Raygun peut même suivre les erreurs jQuery Ajax dans votre application Angular sans que vous ayez à faire quoi que ce soit de plus, vous serez donc entièrement pris en charge dès le départ
.
Prêt à utiliser Raygun ?
Comme mentionné précédemment, il existe une version gratuite de 30 jours sans carte de crédit, vous pouvez donc en obtenir une pour voir si votre application fonctionne réellement pour vos utilisateurs. cet article, veuillez les laisser dans les commentaires ci-dessous.