【发布时间】:2016-08-31 09:56:45
【问题描述】:
我有这些代码:
private void btnPlanning_Click(object sender, RoutedEventArgs e)
{
LoadPage("PlanningView.xaml");
}
private void LoadPage(string APage)
{
try
{
frameMainView.Source = new Uri(APage, UriKind.Relative);
}
catch (Exception ex)
{
string errorString = $"Resource <{APage}> not found! ";
DoLogD(errorString + " " + ex.Message);
MessageBox.Show(errorString);
}
}
单击 btnPlanning 按钮,调用 LoadPage 传递一个字符串,其中包含我要在框架控件中加载的 XAML 资源的名称 frameMainView.
如果给定的资源不存在,我想捕获异常并通知用户。
问题是当我点击按钮时(并且资源不存在),无论如何我都会得到
PresentationFramework.pdb 未加载
还有一个内部System.IO.IOException告诉我资源不可用。
为什么我的 try-catch 块不起作用?
【问题讨论】:
-
如果您在调试器中运行,您可能会遇到第一次机会异常。检查 Debug->Exceptions 并确保仅选中“User-unhandled”列。
-
如果不是这样。尝试注释掉您的 DoLogD() 调用。也许这会在您的消息框出现之前引发异常。
-
您最近是否更改了目标框架?请在检查目标框架后清理并重建整个解决方案。
-
没有改变框架。 DoLogD() 调用不会引发异常(但我已在测试中将其删除)。
标签: c# wpf xaml visual-studio-2015 try-catch