Exception 如何抛出和捕获web api异常?

Exception 如何抛出和捕获web api异常?,exception,asp.net-web-api,Exception,Asp.net Web Api,我正在从WebApi抛出异常,如下所示 Catch(ex) { var rEx = HttpResponseException(r.CreateErrorResponse(HttpStatusCode.NotFound,ex)); throw rEx; } 我的问题是如何在Windows应用程序中捕获此异常; i、 e.为了捕获我调用Web Api方法时出现的此异常???您将收到http代码500-内部服务器代码的响应。所以,要捕获此异常,只需检查调用应用程序中的响应代码。

我正在从WebApi抛出异常,如下所示

Catch(ex)
{
var rEx =     HttpResponseException(r.CreateErrorResponse(HttpStatusCode.NotFound,ex));
      throw rEx;
}
我的问题是如何在Windows应用程序中捕获此异常;
i、 e.为了捕获我调用Web Api方法时出现的此异常???

您将收到http代码500-内部服务器代码的响应。所以,要捕获此异常,只需检查调用应用程序中的响应代码。

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

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

HttpResponseMessage response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
       //write app code.
}
2或。。通过检查: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.
}

详细讨论

应用程序如何调用WebAPI方法?你有没有试着用try/catch来包装那个电话?