上一篇文大致研究了企业库的异常处理模块,现在我将对其深入研究。
研究目标
1 异常处理原理;
2 主要功能底层实现;
准备
下载Enterprise Library 源码(http://entlib.codeplex.com/releases/view/43135),安装即可。
注意:
win7 或 Vista安装时,我写了一个批处理,然后用超级管理员执行,才安装成功。在记事本中写入命令:start /wait E:/学习/研究中/EnterpriseLibrary/企业库/Samples/***.msi ,保存为.bat格式,以超级管理员运行即可。
企业库异常处理原理
我们希望异常处理机制与记录日志和报告信息decouple的,请看图(企业库处理流程):
异常传播方式
从此图可以看出:可将原始异常throw后,可经过封装(wrap),最后处理Catch。
隐藏一些异信息(replace handler)
当我们不想用户看得到所有异常,或者一些不愿意让用户看到的异常信息,我们可以隐藏掉一些敏感的内容,企业库中对就的方式为:replace handler
异常通知
发生的异常,通知系统发生了异常,是处理异常的先决条件。
异常通知需要和具体业务逻辑是解耦合的,即业务千变万化,但异常通知的调用应该是稳定的。
异常处理注意事项
1. 不要处理(catch)没有任何意义的异常(对于系统,使用用户都没有任务信息);
2. 如果需要从异常中恢复业务流程,这个时候需要处理异常。
3. 通常在一个层的边界才考虑处理异常;replace 包含敏感信息的异常。
4. 异常中的信息应该愈为具体愈好;反映给用户的信息要友好
学习资源推荐:
* (微软企业库上手程序)http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4f8cd377-5522-4f45-a024-44a6ca5111ec&displaylang=en