Диалог сообщения не отображается в предложении catch

Я использую следующий код в своей функции приложения Windows 8, чтобы поймать ошибку и отобразить диалог сообщений

 catch (Exception ex)
            {
                MessageDialog err = new MessageDialog("Error");
                await err.ShowAsync();


            }

Но я получаю сообщение об ошибке "не могу ожидать в теле предложения catch".

Но когда я удаляю await, это работает, но я получаю предупреждение о коде: "Поскольку этот вызов не ожидается, выполнение текущего метода продолжается до завершения вызова. Рассмотрите возможность применения оператора await к результату вызова".

Мне нужно отобразить сообщение в этом предложении catch, как мне это исправить?

1 ответ

Вместо того, чтобы делать работу в catchПросто установите исключение для локальной переменной. Если он не нулевой, то вы знаете, что вам нужно обработать его после окончания catch блок.

public static async Task Foo()
{
    Exception e = null;
    try
    {
        //just something to throw an exception
        int a = 0;
        int n = 1 / a;
    }
    catch (Exception ex)
    {
        e = ex;
    }
    if (e != null)
        await ShowDialog();
}
Другие вопросы по тегам