首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法构造WebException

无法构造WebException
EN

Stack Overflow用户
提问于 2017-02-15 08:36:15
回答 1查看 352关注 0票数 0

我有一个在DownloadData上调用WebClient的方法。由于URL返回404,此方法引发异常。这都是规范所期望的,因为资源不存在。

Web将抛出一个WebException,因为它包含包含有详细错误的JSON对象,所以我必须从响应中读取body。在那之后,我不得不再次抛出一个WebException,因为图层向上仍然期望WebException。目前,我正在尝试构建一个包含当前WebException的详细信息,如下所示:

代码语言:javascript
复制
catch(WebException ex)
{
   var response = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();   
   dynamic error = JsonConvert.DeserializeObject(response);
   throw new WebException(error.message, null, ex.Status, ex.Response);
}

问题是,在构造WebException时,我得到了一个异常。这就是信息!

“System.Net.WebException.WebException(string,System.Net.WebExceptionStatus,System.Net.WebExceptionInternalStatus,System.Exception)”的最佳重载方法匹配有一些无效的参数

就像这个构造函数不存在一样!检查异常中的构造函数,在catch块中检查构造函数。

如您所见,我正在使用有效的构造函数。检查这里

这里发生了什么事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-15 08:50:48

问题是,您需要将error.message转换为字符串。如果您能够以不同的方式处理该字符串,以便验证该error.message是否存在,则会更好。

代码语言:javascript
复制
catch(WebException ex)
{
    var response = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();   
    dynamic error = JsonConvert.DeserializeObject(response);
    throw new WebException((string)error.message, null, ex.Status, ex.Response);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42244300

复制
相关文章

相似问题

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