這篇文章主要介紹了使用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 是異常處理器的實體,我們會調用它來獲得輸出到控制臺的原始行為.
你也可以按照自己的需要創建足夠多的其它服務:
新聞熱點
疑難解答