首页 > 网站 > 建站经验 > 正文

使用Raygun来自动追踪AngularJS中的异常

2019-11-02 15:53:56
字体:
来源:转载
供稿:网友

  这篇文章主要介绍了使用Raygun来自动追踪AngularJS中的异常,AngularJS是一款高人气的JavaScript库,需要的朋友可以参考下

  Angular.js取得的巨大成就之一是实用的异常抛出,因为异常信息经常能够准确的表明你的代码为什么崩溃了。运行于世界各地的众多浏览器的大型客户端web应用会面临异常丢失的问题,而捕获它就有可能修复 bug并赢得用户。

  当处理跨浏览器和设备的问题时,接收这些异常信息是很重要的,因为你的应用可能在你的开发机器上运行得正确可靠,但在你的用户的浏览器上却是另一番场景。

  其解决方案是需要一个自动异常跟踪服务,而Raygun通过接收你的Angular web应用抛出的所有异常但不需要你做任何事,从而简化了这项工作。它的设置真的很快--只需要按照以下步骤将Raygun hook到你的应用就可以了。

  安装

  首先,下载小巧的Raygun4JS脚本,并把它添加到你的项目中。有3个途径获得:

  通过Bower

  代码如下:

  bower install raygun4js

  从NuGet获得——在Visual Studio中,打开包管理器控制台然后输入:

  代码如下:

  Install-Package raygun4js

  手动下载 – 点击此处下载dev版 或者压缩过的版本

  配置

  接下来,引用这个脚本。如果你使用静态的HTML,将 添加到页面里面或添加到你的模块加载器中。

  最后,在你的Angular主逻辑执行之前调用下面的代码来设置Raygun4JS:

 

? 1 Raygun.init('YOUR_API_KEY').attach();

        你可以为每一个用Raygun创建的app生成一个API key,你可以在你的Raygun dashboard 中访问他——你有30天免费试用时间来测试它。
         在Angular中捕获异常

        至少有两种方法将未处理的异常注射到Angular.js的模块中,通过使用decorator 或 factory。这两种方式会为你提供$exceptionHandler的具体实现,我们上面所提到的Raygun4JS会将该实现发送给Raygun。

        使用一个装饰器

        装饰器模式因其不会覆盖掉原有的行为,所以很适合用来将行为注入到任意的服务中,以确保在其它所期望的特性中分离关注点,它也是记录日志和处理异常的理想方式. 在Angular.js中它可以使用在 $provide 服务中,我们将用来实现我们自己的

? 1 2 3 4 5 6 7 8 9 10 $exceptionHandler 函数:   app.config(function ($provide) { $provide.decorator("$exceptionHandler", ['$delegate', function($delegate) { return function (exception, cause) { Raygun.send(exception); $delegate(exception, cause); } }]) });

        $delegate 是异常处理器的实体,我们会调用它来获得输出到控制台的原始行为.

        你也可以按照自己的需要创建足够多的其它服务:

? 1 2 3 4 5 6 7 $provide.decorator("$exceptionHandler", ['$delegate', '$log', function($delegate, $log) { return function (exception, cause) { $log.debug('Sending to Raygun'); Raygun.send(exception); $delegate(e
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表