Spec-Zone.ru › Angular.js 1.6

Улучшить эту документацию Просмотреть исходный код $exceptionHandler

  1. Сервис в модуле 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); }

Зависимости

  • $log

Использование

$exceptionHandler(exception, [cause]);

Аргументы

Параметр Тип Подробности
исключение Error

Исключение, связанное с ошибкой.

причина
(необязательно)
string

Дополнительная информация о контексте, в котором была выброшена ошибка.

© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ng/service/$exceptionHandler

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API