在这一章,我们介绍了WCF如何处理异常以及你需要影响那些操作的很多选项。首先可能也是最重要的是要理解当你什么也不做的时候会发生什么。默认情况下,未处理异常可能导致会话中断以及客户端代理非法。
了解如何使用FaultException类是创建一个有效地异常处理策略并避免未处理异常引发的潜在相关问题的关键。对抽象SOAP异常数据元的细节和WCF如何将异常信息转换为要发送给调用者的数据元是有帮助的。你看到FaultException可以被扩展来提供细节代码和原因,甚至提供异常消息的本地化翻译来支持一个本地化的客户端应用程序。
从未处理异常和基本的FaultExceptions, 我们使用基本的FaultException<>来继续强类型化异常的概念。通过使用数据契约来定义表达异常信息的数据结构,客户端应用程序可以包含高效的类型驱动的异常处理代码而不需要在运行时截取单独的FaultException实例来确定操作的正确错误原因。使用FaultContract属性允许代理生成工具分析服务的WSDL来创建强类型化源数据契约表述,不考虑客户端使用的技术。
最后,我们介绍了在企业库的异常处理应用块中WCF集成背后的概念。这允许你轻松地在你的服务边界创建处理异常的策略。
在你的组,团队或者公司中有一个定义好的而且易于理解的异常处理策略是极其重要的。当你创建你的WCF服务和客户端应用时,花费一点时间考虑你的服务将会确保按照预期工作而且允许客户端鲁棒性开发和维护的架构。