HttpClient - traitant de l'agrégat des exceptions

Salut, je suis en utilisant HttpClient similaire à ceci:

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;
    }
}

Mais je vais avoir des difficultés à traiter les exceptions. J'ai ajouté le supplément de blocs catch juste pour l'essayer et l'étape de projection, mais aucun des points de rupture sont pris dans un des blocs catch. Je me rends compte à l'aide de la Tâche à l'exception peut se produire sur un autre thread que l'appelant si l'exception est enveloppé dans un agrégat contenant, mais je ne suis pas sûr de ce que la meilleure façon de faire face à ces exceptions.

Par exemple je fais une demande à un service web et spécifiques à un paramètre non valide dans la demande, et qu'une exception est levée. Je veux m'en mesure de rattraper le total des exceptions et de regarder la innerexceptions de savoir pourquoi la demande a échoué et renvoyer un message amical.

Donc ma question est, quelle est la meilleure façon de capter l'ensemble des exceptions et de traiter avec eux?

OriginalL'auteur gdp | 2012-06-28