Улучшить эту документацию Посмотреть исходный код $exceptionHandler
- сервис в модуле ng
Обзор
Любое непредвиденное исключение в выражениях AngularJS делегируется этому сервису. По умолчанию он просто делегирует его $log.error, который записывает его в консоль браузера.
В модульных тестах, если angular-mocks.js загружен, этот сервис переопределяется мока $exceptionHandler, что помогает в тестировании.
Пример:
В примере ниже будет переопределён по умолчанию $exceptionHandler , чтобы (а) записывать непредвиденные ошибки на бэкэнд для последующего анализа разработчиками и (б) использовать $log.warn() вместо $log.error().
angular.
module('exceptionOverwrite', []).
factory('$exceptionHandler', ['$log', 'logErrorsToBackend', function($log, logErrorsToBackend) {
return function myExceptionHandler(exception, cause) {
logErrorsToBackend(exception, cause);
$log.warn(exception, cause);
};
}]);
Обратите внимание, что код, выполняемый в обработчиках событий (даже тех, которые зарегистрированы с помощью jqLite'ов on/bind методы) не делегирует исключения в $exceptionHandler (если не выполняется во время digest). Если нужно, вы можете вручную делегировать исключения, например try { ... } catch(e) { $exceptionHandler(e); }
Зависимости
Использование
$exceptionHandler(exception, [cause]);
Аргументы
| Параметр | Тип | Подробности |
|---|---|---|
| исключение | Error | Исключение, связанное с ошибкой. |
| причина (необязательно) | string | Необязательная информация о контексте, в котором была выброшена ошибка. |
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.7.8/docs/api/ng/service/$exceptionHandler