我使用AngularJS和typescript,我还调用Rest服务以从后端检索数据。我的问题是对所有 Controller 全局处理调用错误的最佳方法是什么。
最佳答案
全局处理错误的最好方法是覆盖
'$exceptionHandler'
这是文件链接
“https://docs.angularjs.org/api/ng/service/ $ exceptionHandler”
(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: ng.auto.IProvideService) {
$provide.decorator('$exceptionHandler',
['$delegate', 'config', 'logger', extendExceptionHandler]);
}]);
// Extend the $exceptionHandler service to also display a toast.
function extendExceptionHandler($delegate: ng.IExceptionHandlerService, config: config, logger: logger) {
var appErrorPrefix = config.appErrorPrefix;
var logError = logger.getLogFn('app', 'error');
return function (exception: Error, cause: string) {
$delegate(exception, cause);
if (appErrorPrefix && exception.message.indexOf(appErrorPrefix) === 0) { return; }
var errorData = { exception: exception, cause: cause };
var msg = appErrorPrefix + exception.message;
logError(msg, errorData, true);
};
}
})();
https://github.com/johnnyreilly/HotTowel-Angular-TypeScript/blob/master/app/config.exceptionHandler.ts
关于angularjs - AngularJS中的全局错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920532/