我在一個xamarin表單項目中使用HttpClientHttpClient會拋出哪些異常?
該類有文檔記錄,但我找不到任何關於它的方法可能拋出哪些異常的文檔。
例如GetAsync方法沒有關於可能的例外的任何文檔。但我認爲它會拋出,例如服務器無法訪問時。
有什麼地方可能會拋出異常列表?
我在一個xamarin表單項目中使用HttpClientHttpClient會拋出哪些異常?
該類有文檔記錄,但我找不到任何關於它的方法可能拋出哪些異常的文檔。
例如GetAsync方法沒有關於可能的例外的任何文檔。但我認爲它會拋出,例如服務器無法訪問時。
有什麼地方可能會拋出異常列表?
正如其他人所說的,它取決於你用HttpClient調用什麼。我明白你的意思,所以這裏是一些典型的方法調用拋出的異常。
SendAsync
可以拋出:
https://msdn.microsoft.com/en-us/library/hh138176(v=vs.110).aspx
同樣GetAsync
PostAsync
PutAsync
GetStringAsync
GetStreamAsync
等等可以拋出ArgumentNullException
和HttpRequestException
如上(但不InvalidOperationException
)。
https://msdn.microsoft.com/en-us/library/hh158944(v=vs.110).aspx
一旦調用SendAsync
或GetAsync
等你將有一個Task<HttpResponseMessage>
。一旦等待,如果返回不成功的HTTP狀態碼,我傾向於撥打EnsureSuccessStatusCode()
以拋出HttpRequestException
。 https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161
它也可以t hrow'TaskCanceledException':https://stackoverflow.com/a/12901496/67824。 –
是的,在特定方法的文檔中。你爲什麼想知道? – CodeCaster
你得到一個'HttpResponseMessage',它具有屬性'IsSuccessStatusCode'和'StatusCode',它可以是下列之一:https://msdn.microsoft.com/en-us/library/system.net.httpstatuscode(v=vs .118).aspx這是你在找什麼? –
@CodeCaster我找不到有關異常的任何文檔(例如:https://msdn.microsoft.com/de-de/library/hh158944(v=vs.118).aspx)。我想知道,因爲我想處理所有的例外情況。 – Nathan