我正在使用WebRequest / WebResponse来获取一些远程html。当我的代码从远程服务器遇到错误时,会抛出异常。
以下是我的代码示例:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1";
WebResponse response = request.GetResponse();
string html = response.ToString();
“WebResponse response = request.GetResponse();”
引发了异常如果我尝试将其包装在try块中,则下面的“响应”加下划线并说明当前上下文中不存在名称“response”。这是一个例子:
try
{
WebResponse response = request.GetResponse();
}
catch
{
}
string html = response.ToString();
如何在下面使用它时测试“响应”?
答案 0 :(得分:1)
WebResponse response = null;
try
{
response = request.GetResponse();
}
catch
{
}
string html = response.ToString();
您收到编译时错误,因为您的变量是在try..catch
范围内声明的,而局部变量只能在其范围内访问。范围基本上由开括号和右括号表示,括号之间的所有内容都是范围的一部分。
具体而言,当您调用request.GetResponse();
时,会抛出您收到的异常。
这意味着您可以安全地将变量置于try..catch
范围之外并在方法范围内访问它,并仍然捕获由于您调用request.GetResponse();