我有一些代码可以像这样进行异步 http 调用:
try
{
var myHttpClient = new HttpClient();
var uri = "http://myendpoint.com";
HttpResponseMessage response = client.GetAsync(uri).Result;
}
catch (Exception ex)
{
Console.WriteLine("an error occurred");
}
大多数情况下这工作正常,但偶尔我会得到一个System.AggregateException
读取One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. --- End of inner exception stack trace
在上述情况下,我的 catch 语句从未达到,我不知道为什么。我知道任务在抛出异常时有一些复杂的因素,但我不知道如何在我的 catch 语句中处理它们?