我在考虑使用从服务到客户端的一些例外。
在这种情况下,我正在思考。客户端尝试在数据库中插入寄存器。该寄存器具有存储在数据库中的e字段的值,以及它如何具有唯一约束,当我执行savechanges时,我得到updateException。
我正在考虑使用异常(faultException)来警告客户端错误,并使用自定义类向客户端发送寄存器的实际数据,这样客户端就不会进行其他查询登记册。
然而,在这个link中,它说只有异常应该用于开发,而不是生产,所以,没有例外,我怎么能做我想做的事情?
也许我可以使用一个自定义类,它对每种类型的实体都有一个列表属性,以及一个属性bool,它指示操作是对还是错,其他属性带有任意代码来指示错误类型。 ..等等这是一个很好的选择吗?
总之,在生产中避免异常真的更好吗?我如何与服务中的客户端错误沟通?
答案 0 :(得分:1)
您有两个选择:
我个人赞成抛出异常并返回WCF错误。我不喜欢将错误信息附加到返回对象的想法,我觉得它violoates面向对象的主体。例如,名为“ErrorCode”的字段在“CustomerAddress”对象上没有位置。
我相信如果出现特殊情况,那么就应该抛出异常。这也将简化您的代码,因为您不必将所有内容包装在try catch块中,以便将错误信息附加到返回对象。虽然您可能希望捕获意外的异常,然后使用更有用的消息抛出更合适的异常。