无法构造WebException



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

Web客户端将抛出一个WebException,我必须从respose中读取正文,因为它包含带有详细错误的JSON对象。在那之后,我不得不再次抛出WebException,因为上层仍然需要WebException。目前,我正试图构建一个WebException,其详细信息如下:

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(字符串,System.Net.WebExceptionStatus,System.Net.Web ExceptionInternalStatus,System.Exception)'具有一些无效参数

好像这个构造函数不存在!检查异常中的构造函数和catch块中的构造函数。

正如你所看到的,我正在使用一个有效的构造函数。请在此处查看。

这里发生了什么?

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

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);
}

相关内容

  • 没有找到相关文章

最新更新