こんにちは私はこれに似た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を使用すると、呼び出し元とは異なるスレッドで例外が発生する可能性があるため、例外は集約コンテナーにラップされますが、これらの例外を処理する最善の方法がわかりません。
たとえば、Webサービスにリクエストを送信し、リクエストに無効なパラメータを指定すると、例外がスローされます。集約された例外をキャッチし、innerexceptionsを調べて、要求が失敗した理由を突き止め、わかりやすいメッセージを返すことができるようにしたいと思います。
だから私の質問は、これらの集約された例外をキャッチしてそれらに対処するための最良の方法は何ですか?