我正在设计一个WCF服务,它将返回一个响应代码(例如0表示成功,或其他数字表示错误)。此外,Web服务的所有方法都将执行几个常见的验证(例如身份验证apiKey)。我想知道是否有最佳实践方法来组织和检索这些响应代码和消息。感谢任何建议。
理想情况下,不要使用响应代码。成功返回可用内容(或空),失败则抛出异常。 人们处理异常。我们经常忘记查看返回的代码,特别是当99%的时间都是成功时,我们不关心任何响应。所以我们不捕获。然后我们不去检查失败。然后我们花了两天时间追踪一个我们找不到的错误,因为没有抛出异常,而且我们不知道600,000行应用程序中使用了您的Web服务失败的位置……我们甚至不知道是对您的Web服务的调用失败了。只知道某些数据由于某些未知原因出错了。 有一个关于这个话题的SO主题:你更喜欢异常还是返回码?
不要直接使用返回代码。返回代码通常表示成功、一组预期失败和意外失败。Web服务使用预期故障和意外故障来替换此机制。请查看FaultContract和FaultException<T>以获取有关预期故障的实现细节。意外故障是任何其他异常。这是最佳实践。