簡體   English   中英

AngularJS - 禁用$ exceptionHandler

[英]AngularJS - Disable $exceptionHandler

我不希望$ exceptionHandler處理任何異常 - 我希望它們能夠推進到瀏覽器(主要用於Visual Studio中的IE測試)。

我試過覆蓋$ exceptionHandler並簡單地重新拋出錯誤,這給了我10次迭代$ digest錯誤(這是有意義的)。

我該如何完全關閉它?

編輯

不幸的是,重新拋出錯誤並沒有解決問題 - IE只知道重新拋出的錯誤,而不是來自源。

經過一番研究,這是不可能的。 Angular捕獲它們的錯誤,然后顯式調用異常處理程序 - 在許多情況下,它不僅僅是讓錯誤傳播。

根據文檔 ,它是可能的:

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

此示例將覆蓋$ exceptionHandler的正常操作,以使角度異常在發生時更加失敗,而不是僅僅記錄到控制台。

嘗試在window.setTimeout (不是$timeout )延遲執行中拋出異常,這將允許你逃避$digest黑洞。 但不確定它是否會保留IE中的堆棧跟蹤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM