C# catch子句中未显示消息对话框
我在Windows 8应用程序函数中使用以下代码捕获错误并显示消息对话框C# catch子句中未显示消息对话框,c#,windows-8,try-catch,async-await,C#,Windows 8,Try Catch,Async Await,我在Windows 8应用程序函数中使用以下代码捕获错误并显示消息对话框 catch (Exception ex) { MessageDialog err = new MessageDialog("Error"); await err.ShowAsync(); } 但我得到一个错误“不能在catch子句主体中等待” 但是,当我删除等待时,它工作,但是我在代码上得到警告,因为这个
catch (Exception ex)
{
MessageDialog err = new MessageDialog("Error");
await err.ShowAsync();
}
但我得到一个错误“不能在catch子句主体中等待”
但是,当我删除<代码>等待<代码>时,它工作,但是我在代码上得到警告,因为这个调用没有等待,当前方法的执行在调用完成之前继续。请考虑将等待操作符应用到调用的结果中。
我需要在此catch子句中显示一条消息,如何解决此问题?与其在
catch
中执行此工作,不如将异常设置为局部变量。如果它不为null,那么您知道需要在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();
}
只需将异常设置为局部变量,而不是在
catch
中执行工作。如果它不为null,那么您知道需要在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();
}
此链接可能会有所帮助。请不要多次发布同一问题。您不应该这样做的最大原因是,您的两个问题都有可能以重复的形式结束。另外,仅供参考-请阅读“我在哪里不能使用“等待”部分?对不起,我遇到了一些网络问题,没有看到它成功发布,这就是我发布另一个的原因。此链接可能会有所帮助。请不要多次发布同一问题。您不应该这样做的最大原因是,您的两个问题都有可能以重复的形式结束。另外,仅供参考-请阅读“我在哪里不能使用“等待”部分?对不起,我遇到了一些网络问题,没有看到它成功发布,这就是我发布另一个的原因。