我不希望$exceptionHandler处理任何异常--我希望它们能够在浏览器上显示出来(主要用于Visual中的IE测试)。
我尝试过重写$exceptionHandler并简单地重新抛出错误,这给了我$digest错误的10次迭代(这很有意义)。
我怎么才能把它完全关掉?
编辑
不幸的是,重新抛出错误不能解决问题- IE只知道从重新抛出错误,而不是从源。
发布于 2013-12-09 18:02:44
经过一些研究,这是不可能的。角捕获它们的错误,然后显式地调用异常处理程序--在许多情况下,它不只是让错误传播。
发布于 2014-01-18 22:50:05
根据文件,有可能:
angular.module('exceptionOverride', []).factory('$exceptionHandler', function () {
return function (exception, cause) {
exception.message += ' (caused by "' + cause + '")';
throw exception;
};
});此示例将覆盖$exceptionHandler的正常操作,使角异常在发生时很难失败,而不仅仅是登录到控制台。
发布于 2013-09-12 21:41:46
尝试在延迟执行的window.setTimeout (而不是$timeout)中抛出异常,这将允许您逃离$digest黑洞。但不确定它是否会保留IE中的堆栈跟踪。
https://stackoverflow.com/questions/18774501
复制相似问题