处理随机内部500

时间:2018-04-25 16:30:56

标签: c#

我写了一个包装器,有时我会在下一行收到内部错误500:

using(var response = request.GetResponse() as HttpWebResponse)
{
     // Additional logic.
}

我想处理异常,但我不能使用request.HaveResponse()因为请求在技术上是有效的,所以当我的代码尝试获取响应时会抛出错误,{{1} }。我不想包装一个额外的try catch块。 存在一些用于验证状态代码的逻辑,但没有添加,因为该块无法纠正或阻止有问题的代码行。

整个方法:

System.Net.WebException

2 个答案:

答案 0 :(得分:1)

如果您真的想看起来没有使用Exceptions,您可以随时编写自己的扩展方法,例如(kick& dirty,我没有使用过IDE):

public static bool HasErrorResponse(HttpWebRequest request, out WebResponse response)
{
    try
    {
        response = request.GetResponse();
        return true;
    }
    catch (WebException ex)
    {
        return false;
    }
}

答案 1 :(得分:0)

为什么在发出HaveResponse之前检查GetResponse

我会替换:

if(request.HaveResponse())
  using(var response = request.GetResponse() as HttpWebResponse)

使用:

using (var response = request.GetResponse() as HttpWebResponse){
    if(response.StatusCode == HttpStatusCode.OK){

    }
}