tpl parallel library example completed await async c# exception-handling task-parallel-library async-await parallel-extensions

c# - parallel - Lanzar excepción dentro de una tarea: "esperar" frente a esperar()



tpl task parallel library (2)

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. } }

En TPL, cuando se lanza una excepción dentro de una tarea, se envuelve con una excepción AggregateException.
Pero no ocurre lo mismo cuando se usa la palabra clave await .
¿Cuál es la explicación de ese comportamiento?