title: Async method throws exception instantly but is swallowed when async keyword is removed
body: <p>I'm getting some behaviour which I cannot understand when throwing exceptions in async methods.</p>
  
  <p>The following code will throw an exception immediately when calling the ThrowNow method. If I comment that line out and throw the exception directly then the exception is swallowed and not raised in the Unobserved event handler.</p>
  
  <pre><code>public static async void ThrowNow(Exception ex){
      throw ex;
  }
  
  public static async Task TestExAsync()
  {
      ThrowNow(new System.Exception("Testing")); // Throws exception immediately
      //throw new System.Exception("Testing");   // Exception is swallowed, not raised in unobserved event
  
      await Task.Delay(1000);
  }
  
  void Main()
  {  
      var task = TestExAsync();
  }
  </code></pre>
  
  <p>Something a little more confusing, if I remove the <code>async</code> keyword from the <code>ThrowNow</code> method, the exception is swallowed yet again.</p>
  
  <p>I thought async methods run synchronously until reaching a blocking method. In this case, it seems that removing the async keyword is making it behave asynchronously.</p>