AngularJS - Disable $exceptionHandler

AngularJS - Disable $exceptionHandler

本文关键字:exceptionHandler Disable AngularJS      更新时间:2023-09-26

我不希望$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 中保留堆栈跟踪。

相关文章:
  • 没有找到相关文章