2013-10-15 48 views
0

我是C#的新手。我注意到,当服务器返回其他任何200然后我得到一个C#WebResponse.GetResponse()在404页面上返回System.Net.WebException找不到

异常。下面是一个404错误的例子。

未处理的异常:System.Net.WebException:远程服务器返回错误:(404)未找到。

为什么C#会产生异常?这意味着我必须使用try/catch块。

我见过的例子都没有提到这个问题。

在此先感谢您的帮助。

回答

2

是的,您需要使用try/catch块,因为GetResponse()会为范围4xx-5xx中的状态代码提供豁免。

try 
{ 
    response = (HttpWebResponse)request.GetResponse(); 
    code = response.StatusCode; 
} 
catch (WebException we) 
{ 
    code = ((HttpWebResponse)we.Response).StatusCode; 
} 
+0

当我尝试访问try块内的StatusCode时,似乎没有response.StatusCode。 – Smithy

0

是的,它引发了一个例外。但是您仍然可以从异常对象获取响应和状态。因此,使用try/catch,并在catch块中获取所需的信息。

+0

当我尝试访问try块内的StatusCode时,似乎没有response.StatusCode。 – Smithy