当异常消息为底层连接已关闭:在接收时发生意外错误时,visualc# webclient没有状态代码

本文关键字:错误 意外 visualc# 状态 代码 webclient 消息 异常 连接 | 更新日期: 2023-09-27 18:16:44

我有一个使用c#的windows窗体应用程序,它使用Webclient下载一个网站的源代码,我在例外情况下显示状态代码。当webbeexception消息为

底层连接已关闭:在接收

上发生意外错误

状态码不显示,而是程序中断并出现错误:

对象引用未设置为对象的实例

我的代码是:

string source = "";
try
{
  source = await client.DownloadStringTaskAsync("URL");
}
catch(WebException er)
{
  textbox1.AppendText("'r'nError: " + er.Message + "Status Code: " + ((HttpWebResponse)er.Response).StatusCode);
}

当异常消息为底层连接已关闭:在接收时发生意外错误时,visualc# webclient没有状态代码

From MSDN on WebException.Response的值:

如果响应可从Internet资源获得,则WebResponse包含来自Internet资源的错误响应的实例;否则,null。

    从http://msdn.microsoft.com/en-us/library/system.net.webexception.response
  • (v = vs.110) . aspx

如果没有可用的响应,WebException.Response可能为null。您应该将其从catch块中取出,而只是打印异常消息。或者,如果您想打印存在的WebException.Response,则执行空检查。