AngularJS - отключить $exceptionHandler - программирование
Подтвердить что ты не робот

AngularJS - отключить $exceptionHandler

Я не хочу, чтобы $exceptionHandler обрабатывал любые исключения - я хочу, чтобы они пропелировали до браузера (в первую очередь для тестирования IE в Visual Studio).

Я попытался переопределить $exceptionHandler и просто переустановить ошибку, которая дает мне 10 итераций ошибки $digest (что имеет смысл).

Как полностью отключить его?

ИЗМЕНИТЬ

К сожалению, перезапуск ошибки не решает проблему - IE знает только ошибку из rethrow, а не из источника.

4b9b3361

Ответ 1

После некоторых исследований это невозможно. Angular ловит свои ошибки, а затем явно вызывает обработчик исключений - во многих случаях он не просто допускает распространение ошибки.

Ответ 2

В соответствии с документацией, возможно:

angular.module('exceptionOverride', []).factory('$exceptionHandler', function () {
    return function (exception, cause) {
        exception.message += ' (caused by "' + cause + '")';
        throw exception;
    };
});

Этот пример переопределит нормальное действие $exceptionHandler, чтобы make angular исключения терпят неудачу, когда они происходят, а не просто вход в консоль.

Ответ 3

Попробуйте выбросить исключение из window.setTimeout (not $timeout) задержка выполнения, это позволит вам избежать черной дыры $digest. Но не уверен, что он сохранит трассировку стека в IE.