如何抛出并捕获web api异常?

时间:2015-01-23 13:28:57

标签: exception asp.net-web-api

我正在从WebApi中挖掘Exception,如下所示

Catch(ex)
{
var rEx =     HttpResponseException(r.CreateErrorResponse(HttpStatusCode.NotFound,ex));
      throw rEx;
}

我的问题是"如何在Windows应用程序中捕获此异常&#34 ;; 即从我称之为Web Api Method ????

的地方捕获此异常

2 个答案:

答案 0 :(得分:0)

您将收到http代码500 - 内部服务器代码的回复。因此,要赶上"赶上"此异常只是在调用app时检查响应代码。

答案 1 :(得分:0)

这会将404响应返回给客户端。假设您正在使用WebClient来调用此服务,可以通过以下几种方式完成:

1)您可以检查响应的状态,如下所示:

HttpResponseMessage response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
       //write app code.
}

2)或者..以try / catch方式检查:resp.EnsureSuccessStatusCode(),如果响应不是200,则抛出异常。像这样:

try
{
  HttpResponseMessage response = await client.GetAsync("api/products/1");
  resp.EnsureSuccessStatusCode();    // Throw if not a success code.

   // ...
}
catch (HttpRequestException e)
{
// Handle exception.
}

详细讨论here