我有一个角度应用程序。它有n个控制器。我知道$ exceptionHandler。这是自定义的expception处理程序。
'use strict';
angular.module('exceptionHandlingApp')
.config(function($provide) {
$provide.decorator('$exceptionHandler', ['$log', '$delegate',
function($log, $delegate) {
return function(exception, cause) {
$log.debug('Default exception handler.');
$delegate(exception, cause);
};
}
]);
});
控制器
app.controller('cust1Controller',function($scope,$exceptionHandler)
{
//ajax request or anything
}
app.controller('cust2Controller',function($scope,$exceptionHandler)
{
//ajax request or anything
}
如果任何控制器发生任何异常,我该如何调用自定义处理程序?
答案 0 :(得分:0)
你不应该调用异常的处理程序。它由AngularJS自动调用。
要确保您可以使用debugger
关键字。让我举个例子。
angular
.module("app")
.config(logExceptionToAPIServer);
function logExceptionToAPIServer($provide) {
$provide.decorator("$exceptionHandler", ["$delegate",
function ($delegate) {
return function (exception, cause) {
debugger;
var http = angular.injector(['ng']).get('$http');
debugger;
var request = {
Message: exception.message,
StackTrace: exception.stack
};
http.post('yourAddress//', request);
$delegate(exception, cause);
};
}
]);
};