目前,我正在执行以下操作,将错误消息发送回客户端:
HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.Forbidden)
{
ReasonPhrase = "No rights to access this resource",
};
throw new HttpResponseException(message);
但是,我想通过发回自定义异常来进一步改进响应。所以我可以这样:
public class MyAppException : Exception {}
public class NoRightsException : MyAppException {}
public class SaveException : MyAppException {}
//etc...
我的所有例外都将在一个单独的程序集中,服务器和客户端都将引用它。
如何最好地将这些异常返回给客户端,以及客户端如何检查响应是我的自定义异常,另一个异常还是简单的短信?
答案 0 :(得分:1)
回答问题的第一部分..返回异常的正确方法是使用Request.CreateErrorResponse。此方法有许多重载,其中一个重载将异常作为参数。在你的情况下,你可能会......
Request.CreateErrorResponse(HttpStatusCode.BadRequest, new NoRightsException());
更新
虽然您没有说明您的客户端方法是什么,但我将假设您正在使用HttpClient。如果是这种情况,你应该拨打一个类似的电话......
var client = new HttpClient();
var task = client.PostAsync(url)
.ContinueWith(response =>
{
response.Result.EnsureSuccessStatusCode();
});
task.Wait();
在这种情况下,您将在响应类中找到文本或异常