WebResponse Try Catch
本文关键字:Catch Try WebResponse | 更新日期: 2023-09-27 18:19:32
我正在使用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"将加下划线,并表示"response(响应)"名称在当前上下文中不存在。这里有一个例子:
try
{
WebResponse response = request.GetResponse();
}
catch
{
}
string html = response.ToString();
如何在能够使用以下内容的同时测试"响应"?
WebResponse response = null;
try
{
response = request.GetResponse();
}
catch
{
}
string html = response.ToString();
您收到一个编译时错误,因为您的变量是在try..catch
范围内声明的,并且只能在其范围内访问局部变量。作用域本质上是由开括号和闭括号表示的,括号之间的所有内容都是作用域的一部分。
具体来说,当您调用request.GetResponse();
时,会抛出您收到的异常。
这意味着您可以安全地将变量带到try..catch
作用域之外,并在方法作用域中访问它,并且仍然可以捕获由于调用request.GetResponse();
而可能引发的任何异常