我正在尝试正确地处理两个不同的WebException。
基本上,它们是在调用WebClient.DownloadFile(string address, string fileName)之后处理的
到目前为止我有两个问题要处理,都是WebException的:
可能还有更多,但这是我到目前为止发现的最重要的。
那么我应该如何正确地处理这个问题,因为它们都是WebException的,但我希望以不同的方式处理上面的每个情况。
这就是我到目前为止所知道的:
try
{
using (var client = new WebClient())
{
client.DownloadFile("...");
}
}
catch(InvalidOperationException ioEx)
{
if (ioEx is WebException)
{
if (ioEx.Message.Contains("404")
{
//handle 404
}
if (ioEx.Message.Contains("remote name could not")
{
//handle file doesn't exist
}
}
}正如您所看到的,我正在检查消息以了解它是什么类型的WebException。我会假设有更好的或者更精确的方法来做这件事?
谢谢
发布于 2010-04-16 13:38:28
基于this MSDN article,您可以执行以下操作:
try
{
// try to download file here
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound)
{
// handle the 404 here
}
}
else if (ex.Status == WebExceptionStatus.NameResolutionFailure)
{
// handle name resolution failure
}
}我不确定WebExceptionStatus.NameResolutionFailure是否就是您所看到的错误,但是您可以检查抛出的异常,并确定该错误的WebExceptionStatus是什么。
https://stackoverflow.com/questions/2650758
复制相似问题