首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确处理两个WebException

正确处理两个WebException
EN

Stack Overflow用户
提问于 2010-04-16 13:10:54
回答 1查看 16.5K关注 0票数 19

我正在尝试正确地处理两个不同的WebException

基本上,它们是在调用WebClient.DownloadFile(string address, string fileName)之后处理的

到目前为止我有两个问题要处理,都是WebException的:

  • 无法解析远程名称(即没有到访问服务器的网络连接以下载文件)
  • (404)文件不存在(即文件不存在于服务器上)

可能还有更多,但这是我到目前为止发现的最重要的。

那么我应该如何正确地处理这个问题,因为它们都是WebException的,但我希望以不同的方式处理上面的每个情况。

这就是我到目前为止所知道的:

代码语言:javascript
复制
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。我会假设有更好的或者更精确的方法来做这件事?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-16 13:38:28

基于this MSDN article,您可以执行以下操作:

代码语言:javascript
复制
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是什么。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2650758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档