Диалог сообщения не отображается в предложении 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();
}