То, что вы видите, - это await
развертывание вашего Совокупного исключения. Когда вы await
выполняете задачу, исключение разворачивается и генерируется для общего исключения. Но если вы не развернете исключение, вы увидите, что исключение поймано как совокупное исключение, подобное этому:
try
{
ab.Completion.Wait();
}
catch (AggregateException ae)
{
Console.WriteLine("Aggregate Exception");
// 1. Expecting to catch here.
}
catch (Exception e)
{
Console.WriteLine("Exception Caught");
}
Очевидно, что лучше правильно await
завершение, но этот пример показывает, что действительно AggregateExcpetion
ловится, когда он не развернут.