0

我正在考虑使用一些例外来从服务到客户端。

在这种情况下,我正在考虑例如。客户端尝试在数据库中插入一个寄存器。该寄存器具有数据库中存在的 e 字段的值,以及它如何具有唯一约束,当我执行 savechanges 时,我得到一个 updateException。

我正在考虑使用异常(faultException)向客户端警告错误,并使用自定义类向客户端发送寄存器的实际数据,因此客户端不会对寄存器进行其他查询。

但是,在这个链接中,它说只能在开发中使用异常,而不能在生产中使用,所以,没有异常,我怎么能做我想做的事?

也许我可以使用一个自定义类,它对每种类型的实体都有一个列表属性,以及一个属性 bool,它指示操作是对还是错,其他属性带有任意代码来指示错误类型......等等. 这是一个不错的选择吗?

总而言之,真的是更好地避免生产中的异常吗?我如何从服务中与客户端错误通信?

4

1 回答 1

1

您有 2 个选项:

  • 抛出异常并返回 WCF 错误
  • 将错误信息附加到您返回的对象

我个人倾向于抛出异常并返回 WCF 错误。我不喜欢将错误信息附加到返回对象的想法,我觉得它违反了面向对象的原则。例如,名为“ErrorCode”的字段在“CustomerAddress”对象上没有位置。

我相信如果出现异常情况,那么应该抛出异常。这也将简化您的代码,因为您不必将所有内容包装在 try catch 块中以便将错误信息附加到您的返回对象。尽管您可能希望捕获意外异常,然后抛出更合适的异常并提供更有用的消息。

于 2012-05-10T23:37:58.457 回答