angular中的異常機制與異常之外的處理


在查閱angularjs的官方文檔發現:

  文檔中提到了throw異常

angular.module('exceptionOverride', []).factory('$exceptionHandler', function() {
  return function(exception, cause) {
    exception.message += ' (caused by "' + cause + '")';
    throw exception;
  };
});

同時下面也提到了捕獲異常

try { ... } catch(e) { $exceptionHandler(e); }

其實這兩種在js異常處理中也經常用到,但是這和js中使用的有什么不同呢,下面我們就繼續考中一下,其實在angluarjs中要處理異常就必須使用service服務中的$ExceptionHander組件,引入組件后,你就可以大膽的處理不想調試的bug了,下面我就舉個例子:

var module = angular.module("apple", []);
module = [ '$scope' , '$exceptionHandler' , function ( scope, exceptlogger) {....
try { 函數體} catch(e) {exceptlogger(e); }

在做項目的時候發現有如果是調用插件的方法出現錯誤,如uncaught exception等錯誤,這種捕獲方式是無法捕獲異常的,那么我們就應該使用另一種捕獲異常的方式。

使用window.onerror的方法捕獲異常:

//捕獲函數體內或函數體外的錯誤
window.onerror = fnErrorTrap;
    function fnErrorTrap(msg,url){
               console.log( "Error: " + msg+ "URL: " + url);
    //注意下面的返回值true,表示瀏覽器不對這個錯誤進行處理,不會顯示錯誤提示
                     return true;
     }

遇到這個異常的問題,因此特意整理了一下,不足之處,多多指正

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM