Бросить исключение внутри задачи - «ждут» против ожидания ()

static async void Main(string[] args)
{
    Task t = new Task(() => { throw new Exception(); });

    try
    {                
        t.Start();
        t.Wait();                
    }
    catch (AggregateException e)
    {
        // When waiting on the task, an AggregateException is thrown.
    }

    try
    {                
        t.Start();
        await t;
    }
    catch (Exception e)
    {
        // When awating on the task, the exception itself is thrown.  
        // in this case a regular Exception.
    }           
}

в TPL, при выброшении исключения внутри задачи, он обернут с помощью агрегата.
Но то же самое не происходит при использовании await ключевое слово.
Каково объяснение этого поведения?

20
задан ikh 14 August 2014 в 10:37
поделиться