Перехватить исключение, созданное методом async void

Используя асинхронный CTP от Microsoft для .NET, Можно ли поймать исключение, созданное асинхронным методом в вызывающем методе?

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

По сути, я хочу, чтобы исключение из асинхронного кода всплыло в мой вызывающий код если это вообще возможно.

255
задан MiFreidgeim SO-stop being evil 25 February 2019 в 10:18
поделиться