Credit to

angularjs 1.4


Improve this Doc View Source $exceptionHandler

  1. service in module ng

Any uncaught exception in angular expressions is delegated to this service. The default implementation simply delegates to $log.error which logs it into the browser console.

In unit tests, if angular-mocks.js is loaded, this service is overridden by mock $exceptionHandler which aids in testing.


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

This example will override the normal action of $exceptionHandler, to make angular exceptions fail hard when they happen, instead of just logging to the console.

Note, that code executed in event-listeners (even those registered using jqLite's on/bind methods) does not delegate exceptions to the $exceptionHandler (unless executed during a digest).

If you wish, you can manually delegate exceptions, e.g. try { ... } catch(e) { $exceptionHandler(e); }



$exceptionHandler(exception, [cause]);


Param Type Details
exception Error

Exception associated with the error.


optional information about the context in which the error was thrown.

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.$exceptionHandler