我正在设计一个WCF服务,该服务将返回响应代码(例如0表示成功,或其他数字表示错误)。此外,Web服务的所有方法都将执行几种常见的验证(例如验证apiKey)。
我想知道是否有最佳实践方法或组织和检索这些响应代码和消息。
感谢您的任何建议。
答案 0 :(得分:9)
理想情况下,请勿使用响应代码。返回成功(或无效)时可用的东西,并在失败时抛出异常。
人们处理异常。我们经常忘记查看返回的代码,特别是99%的时间它成功,我们不关心任何响应。所以我们不捕捉。然后我们不打扰检查失败。然后我们花了2天时间追踪我们找不到的错误,因为没有抛出任何异常,我们不知道使用您的网络服务的600,000行应用程序失败了...我们甚至不知道这是对您的调用失败的网络服务。只是由于某些未知原因,某些数据是错误的。
有一个关于此问题的主题:Which and Why do you prefer Exceptions or Return Codes
答案 1 :(得分:2)
请勿直接使用返回代码。返回代码通常表示成功,预期失败和意外失败。 Web服务将此机制替换为预期的故障和意外故障。检查FaultContract和FaultException<T>以获取预期故障的实施细节。意外故障是任何其他异常。这是最好的做法。