我正在使用AngularJS,并且我已经创建了一个自定义异常处理程序。
angular.module('moduleName')
.factory('$exceptionHandler, () => {
return (exception, cause) => {
try {
var someService = $injector.get('serviceName');
someService.alert(exception);
}
catch (ex) {
window.alert(ex);
}
};
})
当我忘记运行服务(名为' serviceName')正在使用的其中一个注入服务的脚本(在html页面中)时,我发现了一种情况。当使用“警报”时,这会导致例外情况。服务的功能。
我添加了try / catch代码,以便使用常规&#39; alert&#39;只要服务出现故障(错误注入或无法初始化),就可以运行,因此应用程序的流程不会受到影响,并且在异常处理程序异常捕获的情况下,代码将在有或没有服务的情况下运行。< / p>
但是,即使使用try区域,当使用服务的alert功能时(当服务出现故障时),再次调用$ exceptionHandler函数而不是到达catch区域......
有没有办法进入catch区域而不是再次调用$ exceptionHandler函数?或者我可以使用不同的方式来查看该服务是否适合使用并且所有注射都正确加载?
先谢谢