L'une des grandes réussites d'Angular.js est le lancement pratique d'exceptions, car le message d'exception peut souvent indiquer exactement pourquoi votre code a planté. Les grandes applications Web côté client exécutées sur de nombreux navigateurs à travers le monde sont confrontées à des exceptions manquantes, et leur détection permet de corriger le bug et de gagner des utilisateurs.
Lorsque vous traitez des problèmes entre navigateurs et appareils, il est important de recevoir ces messages d'exception, car votre application peut fonctionner correctement et de manière fiable sur votre machine de développement, mais pas sur les navigateurs de vos utilisateurs. Une autre scène.
La solution consiste à disposer d'un service automatisé de suivi des exceptions, et Raygun simplifie le travail en recevant toutes les exceptions générées par votre application Web Angular sans que vous ayez à faire quoi que ce soit. C'est très rapide à configurer - suivez simplement les étapes ci-dessous pour intégrer Raygun à votre application.
Installer
Tout d'abord, téléchargez le petit script Raygun4JS et ajoutez-le à votre projet. Il y a 3 façons d'obtenir :
Par Bower
Obtenez-le depuis NuGet - Dans Visual Studio, ouvrez la console Package Manager et tapez :
Téléchargement manuel – Cliquez ici pour télécharger la version dev ou version compressée
Configuration
Ensuite, citez ce script. Si vous utilisez du HTML statique, ajoutez à la page ou à votre chargeur de module.
Enfin, appelez le code suivant pour configurer Raygun4JS avant que votre logique angulaire principale ne soit exécutée :
Raygun.init('YOUR_API_KEY').attach();
Vous pouvez générer une clé API pour chaque application créée avec Raygun, et vous pouvez y accéder dans votre tableau de bord Raygun - vous disposez d'un essai gratuit de 30 jours pour la tester.
Détecter les exceptions dans Angular
Il existe au moins deux façons d'injecter des exceptions non gérées dans les modules Angular.js, en utilisant des décorateurs ou des usines. Ces deux méthodes vous fourniront une implémentation spécifique de $exceptionHandler, et le Raygun4JS que nous avons mentionné ci-dessus enverra l'implémentation à Raygun.
Faire appel à un décorateur
Le modèle de décorateur est très approprié pour injecter un comportement dans n'importe quel service car il n'écrase pas le comportement d'origine pour garantir la séparation des problèmes entre les autres fonctionnalités souhaitées. Il enregistre également la journalisation et le traitement, moyen idéal pour gérer les exceptions dans Angular.js. peut être utilisé dans le service $provide, que nous utiliserons pour implémenter le nôtre
$exceptionHandler 函数: app.config(function ($provide) { $provide.decorator("$exceptionHandler", ['$delegate', function($delegate) { return function (exception, cause) { Raygun.send(exception); $delegate(exception, cause); } }]) });
$delegate est l'entité du gestionnaire d'exceptions, que nous appellerons pour obtenir le comportement original de sortie vers la console.
Vous pouvez également créer autant d'autres services que nécessaire :
$provide.decorator("$exceptionHandler", ['$delegate', '$log', function($delegate, $log) { return function (exception, cause) { $log.debug('Sending to Raygun'); Raygun.send(exception); $delegate(exception, cause); } }])
En fonction du type d'erreur récupéré de la logique angulaire, le paramètre de cause est renseigné. Si une exception se produit dans une usine ou un service, vous pouvez obtenir la plage que peut avoir le paramètre, vous pouvez l'utiliser comme personnalisé données en remplaçant l'appel Raygun.send ci-dessus, ainsi que tout ce dont vous avez besoin, et en le transmettant à Raygun :
Raygun.send(exception, { cause: cause });
Utiliser une usine
Un moyen rapide de placer Raygun dans le gestionnaire d'exceptions de votre application consiste à utiliser une usine, même si cela supprimera le journal de la console d'origine, qui devra être stocké si vous souhaitez conserver cette fonctionnalité d'origine et l'appeler à nouveau. .
app.factory('$exceptionHandler', function () { return function (exception) { Raygun.send(exception); } });
Erreur d'envoi manuel
Raygun4JS vous offre également la possibilité de suivre facilement les erreurs manuellement à tout moment :
Raygun.send(new Error('my custom error'));
供應器上還有一堆其它使用的工具可以利用,包括獨特的用戶跟踪,版本跟踪,標籤及其它 – 這裡的文檔可以查看 的所有相信信息.
Raygun 甚至可以在你的Angular應用中跟踪jQuery 的Ajax錯誤even tracks jQuery Ajax errors ,而無需你的做任何額外的事情, 因此你將得到開箱即用的全面照顧.
準備好使用Raygun了嗎?
如之前所提及的,有一個30天免費的無信用卡支付的版本可用, 因此你可以獲取一個來看看你的應用是否真的是在為你的用戶運作的. 如果你就本文有任何的疑問,請將它們留在下面的評論中。