我在哪里可以找到方法引发的异常?

时间:2013-12-07 17:59:08

标签: c#

我正在尝试查找HttpClient GetAsyncString方法引发的异常。我已经检查了MSDN上的文档,但我似乎无法找到该方法抛出的异常。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

引发ArgumentNullException(假设您在这里谈论GetStringAsync)。

http://msdn.microsoft.com/en-us/library/hh551746(v=vs.110).aspx

答案 1 :(得分:1)

我认为你的意思是GetStringAsync method

文档中列出了例外情况,如果参数为空,它将提供ArgumentNullException

但是,这似乎并非完整的事实。如果您查看HttpClient class文档页面上的示例代码,发出请求的过程也可以抛出HttpRequestException。它没有在方法页面上列出的原因可能是方法调用本身永远不会抛出它,它是由执行请求的异步进程抛出的。

答案 2 :(得分:1)

简短回答GetStringAsync的文档仅提供了问题的部分答案。如果没有Microsoft的澄清,您将无法正确回答您的问题。非官方的答案现在可能会有所帮助,但是不能保证.NET Framework的未来版本(甚至是补丁版本)将保留您当前观察到的精确异常行为。

答案很长:

Task-based Asynchronous Pattern的一个突出问题是如何记录异步方法的异常问题。传统上,异常文档仅包括方法的同步行为引发的异常。不幸的是,这没有地方记录在方法的异步行为期间抛出的异常,即只有当您查看返回的Exception属性时才会看到的异常Task,或尝试await任务。 GetStringAsync的MSDN文档仅记录方法的同步异常。

所以你知道一个替代方案,即使它没有在这里解决你的具体问题,请参阅我为我正在处理的图书馆写的Exceptions Thrown by Asynchronous Methods部分。

答案 3 :(得分:0)

通常,如果您在MSDN上搜索类和方法,它将告诉您方法与其自身创建的异常,而不是外部的异常。

http://msdn.microsoft.com/en-us/library/hh158944(v=vs.110).aspx