// Include in index.html so that app level exceptions are handled.
// Exclude from testRunner.html which should run exactly what it wants to run
(function () {
'use strict';
var app = angular.module('app');
// Configure by setting an optional string value for appErrorPrefix.
// Accessible via config.appErrorPrefix (via config value).
app.config(['$provide', function ($provide) {
$provide.decorator('$exceptionHandler',
['$delegate', 'config', 'logger', extendExceptionHandler]);
}]);
// Extend the $exceptionHandler service to also display a toast.
function extendExceptionHandler($delegate, config, logger) {
var appErrorPrefix = config.appErrorPrefix;
var logError = logger.getLogFn('app', 'error');
return function (exception, cause) {
$delegate(exception, cause);
if (!exception.message)
return;
if (appErrorPrefix && exception.message.indexOf(appErrorPrefix) === 0)
return;
var errorData = { exception: exception, cause: cause };
var msg = appErrorPrefix + exception.message;
logError(msg, errorData, true);
};
}
})();