嗨,我使用的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;
}
}
但我有处理异常困难。 我已经添加了额外的catch块只是为了尝试和步扔,但没有破发点被发现在任何catch块的。 我意识到使用任务异常可以在不同的线程比呼叫者所以异常被包裹在一个骨材容器发生,但我不知道该怎么处理这些异常的最好办法是。
例如我做出的请求的web服务和具体的参数无效的请求,并抛出一个异常。 我希望我能够赶上总异常,并期待在innerexceptions工作为什么请求失败,并返回一个友好的信息。
所以我的问题是,什么是捕获这些骨料异常和处理这些问题的最佳途径?