Ale*_*orn 33 exception-handling angularjs
我目前正在探索在AngularJS中处理应用程序范围异常的可能方法.
我们真正想要避免的一件事是在嵌套的try/catch块中包装应用程序的多个部分,但是干净地处理事情 - 即抛出异常以响应promise.
到目前为止进展
一些简短的设计目标:
我团队目前的倾向是编写一个服务来处理异常,这会暴露一系列简单的调用:
exceptionService.warn('exception_token');
exceptionService.crit('another_exception_token');
Run Code Online (Sandbox Code Playgroud)
然后,该服务将格式化"异常"对象并从rootscope广播.这将允许默认处理程序监视任何广播并应用默认操作,并允许在其他范围中设置自定义侦听器,这可以处理更具体的条件 - 即禁用UI的一部分.
var exception = {
token: 'exception_token',
severity': 'crit'
};
// broadcast exception
$rootScope.$broadcast(
'application_exception',
exception
);
Run Code Online (Sandbox Code Playgroud)
您可以重写 $exceptionHandler 以便将异常传递到您自己的异常中央服务,但 $exceptionHandler 似乎只接收从控制器、指令等抛出的异常...但不接收源自 ajax 调用的异常。对于这些异常,您可以实现一个拦截器,如本页中描述的拦截器:
编辑:链接永久失效。
Archive.org 链接
| 归档时间: |
|
| 查看次数: |
16560 次 |
| 最近记录: |