我正在开发一个小而重要的批处理应用程序,其中有一个步骤从远程网站下载我无法控制的图像。这很简单,我已经开始工作,但我想在错误处理方面提供一些意见。
远程服务器并不总是有请求的映像,因此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
}
答案 0 :(得分:1)
请参阅HttpWebRequest.GetResponse。文档列出了这些可能的例外情况:
InvalidOpertationException
ProtocolViolationException
NotSupportedException
WebException
答案 1 :(得分:0)
见this。 HttpWebRequest
被所谓的“烦恼的例外”所困扰,所以你必须要小心。