Throw Exception inside a Task - "await" vs Wait() <pre><code>static async void Main(string[] args) { Task t = new Task(() =&gt; { 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. } } </code></pre> <p>In TPL, When throwing an exception inside a Task, it's wrapped with an AggregateException.<br> But the same is not happening when using the <strong>await</strong> keyword.<br> What is the explanation for that behavior ?</p>