title: Catch an exception thrown by an async void method
body: <p>Using the async CTP from Microsoft for .NET,
  is it possible to catch an exception thrown by an async method in the calling method?</p>
  
  <pre><code>public async void Foo()
  {
      var x = await DoSomethingAsync();
  
      /* Handle the result, but sometimes an exception might be thrown.
         For example, DoSomethingAsync gets data from the network
         and the data is invalid... a ProtocolException might be thrown. */
  }
  
  public void DoFoo()
  {
      try
      {
          Foo();
      }
      catch (ProtocolException ex)
      {
            /* The exception will never be caught.
               Instead when in debug mode, VS2010 will warn and continue.
               The deployed the app will simply crash. */
      }
  }
  </code></pre>
  
  <p>So basically I want the exception from the async code to bubble up into my calling code
  if that is even possible at all.</p>