我一直在研究使用 .net Web API 编写 Web 服务,但我看到了两种不同的发送错误消息的方法。第一个是返回一个HttpResponseMessage
适当的HttpStatusCode
集合,像这样:
public HttpResponseMessage<string> Get()
{
...
// Error!
return new HttpResponseMessage<string>(System.Net.HttpStatusCode.Unauthorized);
}
另一种方法是只抛出一个HttpResponseException
,如下所示:
public Person Get(int id)
{
if (!_contacts.ContainsKey(id))
{
throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, String.Format("Contact {0} not found.", id)));
}
return _contacts[id];
}
使用其中任何一种都有什么优点/缺点?在可扩展性和性能方面,哪一个比另一个更好?