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 Try Catch

WebResponse response = null;
try
{
    response = request.GetResponse();
}
catch
{
}
string html = response.ToString();

您收到一个编译时错误,因为您的变量是在try..catch范围内声明的,并且只能在其范围内访问局部变量。作用域本质上是由开括号和闭括号表示的,括号之间的所有内容都是作用域的一部分。

具体来说,当您调用request.GetResponse();时,会抛出您收到的异常。

这意味着您可以安全地将变量带到try..catch作用域之外,并在方法作用域中访问它,并且仍然可以捕获由于调用request.GetResponse(); 而可能引发的任何异常