首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS -禁用$exceptionHandler

AngularJS -禁用$exceptionHandler
EN

Stack Overflow用户
提问于 2013-09-12 21:19:03
回答 3查看 1.9K关注 0票数 11

我不希望$exceptionHandler处理任何异常--我希望它们能够在浏览器上显示出来(主要用于Visual中的IE测试)。

我尝试过重写$exceptionHandler并简单地重新抛出错误,这给了我$digest错误的10次迭代(这很有意义)。

我怎么才能把它完全关掉?

编辑

不幸的是,重新抛出错误不能解决问题- IE只知道从重新抛出错误,而不是从源。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-09 18:02:44

经过一些研究,这是不可能的。角捕获它们的错误,然后显式地调用异常处理程序--在许多情况下,它不只是让错误传播。

票数 8
EN

Stack Overflow用户

发布于 2014-01-18 22:50:05

根据文件,有可能:

代码语言:javascript
复制
angular.module('exceptionOverride', []).factory('$exceptionHandler', function () {
    return function (exception, cause) {
        exception.message += ' (caused by "' + cause + '")';
        throw exception;
    };
});

此示例将覆盖$exceptionHandler的正常操作,使角异常在发生时很难失败,而不仅仅是登录到控制台。

票数 2
EN

Stack Overflow用户

发布于 2013-09-12 21:41:46

尝试在延迟执行的window.setTimeout (而不是$timeout)中抛出异常,这将允许您逃离$digest黑洞。但不确定它是否会保留IE中的堆栈跟踪。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18774501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档