2013-12-07 45 views
0

我試圖找到由HttpClientGetAsyncString方法拋出的異常。我檢查了MSDN上的文檔,但似乎無法找到該方法引發的異常。哪裏可以找到方法拋出的異常?

任何想法?

+0

智能感知如果在XML文檔中聲明瞭智能感知 –

+1

類不會拋出異常。 –

+0

修正了大聲笑。抱歉。 –

回答

1

我假設你指的是GetStringAsync method

文檔中列出了例外情況,如果參數爲空,它將顯示ArgumentNullException

雖然這似乎不是全部的事實。如果您查看HttpClient class的文檔頁面上的示例代碼,則發出請求的過程也會引發HttpRequestException。它沒有在方法頁面上列出的原因可能是方法調用本身永遠不會拋出它,它是由執行請求的異步進程拋出的。

1

簡短回答:GetStringAsync的文檔只給出了問題的部分答案。沒有微軟的澄清,你將無法得到你的問題的正式答案。非官方的答案現在可能會有所幫助,但是不能保證.NET Framework的未來版本(甚至補丁版本)將保留您目前觀察到的確切的異常行爲。

龍答:

一個爲Task-based Asynchronous Pattern的突出問題是例外的存檔方式爲異步方法的問題。傳統上,異常文檔僅包含該方法的行爲異常所拋出的異常。不幸的是,這並沒有留下任何記錄方法行爲期間拋出的異常的例外情況,即只有當您查看返回的TaskException屬性或嘗試執行await任務時纔會看到異常。 GetStringAsync的MSDN文檔僅記錄該方法的同步例外。

因此,您知道一種替代方案,即使它沒有解決您的具體問題,請參閱我爲我正在編寫的庫編寫的Exceptions Thrown by Asynchronous Methods部分。