我有一个课程,不应向最终用户显示任何对话框。万一那个用户传递了错误的文件路径,我试图抛出异常并在适当的类中处理它。 但是,尽管有“ throw”指令,Visual Studio仍会显示“异常对话框”并在发生异常后中断应用程序(调试模式)。在发布模式下,应用程序在提供错误的文件路径后会崩溃。我在做什么错了?
GuyManager.cs:
private IStorageFile latestGuyFile;
public IStorageFile LatestGuyFile { get { return latestGuyFile; } }
public string Path { get; set; }
public async void ReadGuyAsync()
{
if (String.IsNullOrWhiteSpace(Path))
return;
try
{
latestGuyFile = await StorageFile.GetFileFromPathAsync(Path);
}
catch (Exception ex)
{
Debug.WriteLine("Error occured: " +ex.Message);
Debug.WriteLine(ex.StackTrace);
throw;
}
MainPage.xml.cs:
private async void loadGuy_Click(object sender, RoutedEventArgs e)
{
try
{
guyManager.ReadGuyAsync();
}
catch (Exception ex)
{
MessageDialog dialog = new MessageDialog("Error" + ex.Message);
await dialog.ShowAsync();
}
}
答案 0 :(得分:0)
我在您的Click事件处理程序中看到一个问题。 您将其定义为异步,但是您没有等待任何事情。
您应该更改ReadGuyAsync方法以返回Task而不是void,如下所示:
.bash_profile
并在loadGuy_Click方法中,您应该等待它:
public async Task ReadGuyAsync()