我找到了如何在GetResponse调用中处理WebException的示例,以及如何从WebException Response中提取响应的方法令人费解。第二个难题是为什么将空响应视为“抛出”;为什么?有什么建议吗?
HttpWebResponse response = null;
try
{
response = (HttpWebResponse) request.GetResponse();
}
catch (WebException ex)
{
response = (HttpWebResponse)ex.Response;
if (null == response)
{
throw;
}
}
最佳答案
响应永远不应该是null
-在这种情况下,作者说的是WebException
不能在此异常处理程序中进行处理,而只是向上传播。
仍然这种异常处理还是不理想的-您可能想知道为什么发生异常,即:
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null)
{
var resp = (HttpWebResponse)ex.Response;
if (resp.StatusCode == HttpStatusCode.NotFound) // HTTP 404
{
//file not found, consider handled
return false;
}
}
//throw any other exception - this should not occur
throw;
}
关于c# - GetResponse引发WebException和ex.Response为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7452669/