As others have commented it depend on what you are calling with HttpClient. I get what you meant though and so here are some exceptions thrown with typical method calls.
SendAsync can throw:
- ArgumentNullException The request was null.
- InvalidOperationException The request message was already sent by the HttpClient instance.
- HttpRequestException The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate
validation or timeout. - TaskCanceledException The request timed-out or the user canceled the request’s
Task.
Source: Microsoft Docs -> HttpClient -> SendAsync
Similarly GetAsync PostAsync PutAsync GetStringAsync GetStreamAsync etc can throw ArgumentNullException, HttpRequestException and as above (but not InvalidOperationException).
Source: Microsoft Docs -> HttpClient -> GetAsync
Once you have called SendAsync or GetAsync etc you will have a Task<HttpResponseMessage>. Once awaited I tend to call EnsureSuccessStatusCode() to throw a HttpRequestException if there is a non success HTTP status code returned. https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161