WCF 中异常的设计
在今天的开发过程中需要定义WCF服务中的异常,就想了一个怎样来建立一个合适的服务异常的结构.
首先:如果定义的异常太多会增加在编写服务的客户端时的开发量.
其次:在WCF中不能像.NET中一样进行异常的继承之类的层次结构的设计.
所以在想的时候先想到就是尽量少的定义异常,会要针对于一大组问题定义一个异常就可以了.根据这个原则,结合以前的程序的开发,我设想需要以下异常:
针对于服务接口中传入对象的条件检查的异常.InvalidParameter
针对于一些业务模型的属性不满足条件的异常.InvalidDataMember
针对于服务处理过程上出现的问题,InvalidOperation
这三个异常分别用于处理,服务接口的参数错误、数据成员的数据错误(包括,唯一性检查啊,外键条件不满足啊之类的),而InvalidOperation则用来处理无效的操作(如:定单已处理后,再次要求处理这个定单,系统角色不能进行删除,但强制进行删除等)。
针对于这个个错误定义的类,我在想如果这样设计那会不会每个接口都需要定义啊,因为多数据接口都有这三种情况啊。
特别是InvalidOperation感觉好像太简单了点。