我应该在WebRequest调用中注意哪些例外?

时间:2010-02-11 11:19:55

标签: c# .net exception-handling

我正在开发一个小而重要的批处理应用程序,其中有一个步骤从远程网站下载我无法控制的图像。这很简单,我已经开始工作,但我想在错误处理方面提供一些意见。

远程服务器并不总是有请求的映像,因此404 Not Found实际上是正常的,但捕获所有其他通信错误(如超时和连接错误)至关重要,这样才能将其置于重试队列中。我很乐意得到关于异常处理的建议,特别是我应该考虑什么?我应该过滤的任何其他异常类型?

try 
{
    // webrequest.getresponse(), read file and return image
}
catch (WebException webEx) 
{
    // check the WebException/http status code and act on certain errors
    // if 404 image/file not found - ok, just return
    // other error - log and put on retry queue
}
catch (Exception ex) 
{
    // some other major failure, log and alert
}

2 个答案:

答案 0 :(得分:1)

请参阅HttpWebRequest.GetResponse。文档列出了这些可能的例外情况:

  
      
  • InvalidOpertationException
  •   
  • ProtocolViolationException
  •   
  • NotSupportedException
  •   
  • WebException
  •   

答案 1 :(得分:0)

thisHttpWebRequest被所谓的“烦恼的例外”所困扰,所以你必须要小心。