Здравейте, използвам HttpClient, подобен на този:
public static Task<string> AsyncStringRequest(string url, string contentType)
{
try
{
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(contentType));
return client.GetStringAsync(url).ContinueWith(task => {
return task.Result;
});
}
catch (AggregateException ex)
{
throw ex;
}
catch (WebException ex)
{
throw ex;
}
catch (Exception ex)
{
throw ex;
}
}
Но изпитвам трудности при работа с изключения. Добавих допълнителните блокове за улавяне, само за да опитам да хвърлям стъпка, но нито една от точките на прекъсване не е уловена в нито един от блоковете за улавяне. Осъзнавам, че при използване на Task изключението може да възникне в нишка, различна от повикващата, така че изключението е обвито в сборен контейнер, но не съм сигурен кой е най-добрият начин за справяне с тези изключения.
Например правя заявка към уеб услуга и определям невалиден параметър в заявката и се хвърля изключение. Искам да мога да уловя сборните изключения и да разгледам вътрешните изключения, за да разбера защо заявката е неуспешна и да върна приятелско съобщение.
Така че въпросът ми е какъв е най-добрият начин да уловя тези сборни изключения и да се справя с тях?