Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-禁用$exceptionHandler_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS-禁用$exceptionHandler

Javascript AngularJS-禁用$exceptionHandler,javascript,angularjs,Javascript,Angularjs,我不希望$exceptionHandler处理任何异常-我希望它们能够应用到浏览器(主要用于Visual Studio中的IE测试) 我尝试重写$exceptionHandler并简单地重新引用错误,这给了我$digest错误的10次迭代(这是有意义的) 我如何完全关闭它 编辑 不幸的是,重试错误并不能解决问题-即只从重试中知道错误,而不从源代码知道错误。尝试在窗口内抛出异常。setTimeout(而不是$timeout)延迟执行,这将允许您逃脱$digest黑洞。但不确定它是否会在IE中保留堆

我不希望$exceptionHandler处理任何异常-我希望它们能够应用到浏览器(主要用于Visual Studio中的IE测试)

我尝试重写$exceptionHandler并简单地重新引用错误,这给了我$digest错误的10次迭代(这是有意义的)

我如何完全关闭它

编辑


不幸的是,重试错误并不能解决问题-即只从重试中知道错误,而不从源代码知道错误。

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

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

,还可能:

angular.module('exceptionOverride', []).factory('$exceptionHandler', function () {
    return function (exception, cause) {
        exception.message += ' (caused by "' + cause + '")';
        throw exception;
    };
});
此示例将覆盖$exceptionHandler的正常操作,以 使角度异常在发生时很难失败,而不仅仅是 登录到控制台


您的重写$exceptionHandler是否与中提供的类似?感谢mems-问题在于它仍然会通过代码捕获错误并从重写中重新引用它。当这种情况发生时,您会丢失原始堆栈跟踪。这是angularjs中最令人沮丧的部分之一。我不明白为什么它是图书馆的一部分。