我有一个方法,我在WebClient上调用DownloadData。由于URL返回404,因此此方法会引发异常。由于资源不存在,所有这一切都符合规范。无法构建WebException
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.WebExceptionInternalStatus, System.Exception的)' 具有一些无效参数
这就像这个构造函数不存在!检查异常中的构造函数并检查catch块中的构造函数。
正如你所看到的,我使用了一个有效的构造函数。检查here。
这里发生了什么?
读取错误,你的参数,你是通过不正确的 –
尝试铸造你的'null' - 听起来不可思议,我知道,但是这可以通过重载帮助(如果这是真正问题所在)。 –
也尝试使用'string message = error.message;'然后使用它 - 以便重载解析将在编译时而不是在执行时发生。 –