首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebResponse尝试捕获

WebResponse尝试捕获
EN

Stack Overflow用户
提问于 2013-06-22 13:48:59
回答 1查看 2.8K关注 0票数 1

我正在使用WebRequest/WebResponse获取一些远程html。当我的代码遇到来自远程服务器的错误时,就会抛出异常。

下面是我的代码示例:

代码语言:javascript
复制
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‘这个名称在当前上下文中不存在。下面是一个这样的例子:

代码语言:javascript
复制
try
{
    WebResponse response = request.GetResponse();
}
catch
{

}

string html = response.ToString();

我如何测试“响应”,同时又能在下面使用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-22 13:52:11

代码语言:javascript
复制
WebResponse response = null;
try
{
    response = request.GetResponse();
}
catch
{

}

string html = response.ToString();

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17247741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档