[英]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.