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.
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); }