Try-Catch未知行为

时间:2011-08-19 12:59:29

标签: c# .net xaml user-controls try-catch

我目前正在学习一本关于如何在运行时将xaml代码转换为对象的书。

我有以下代码:

try
{
    ctrl = XamlReader.Load(xaml) as UserControl;
}
catch (Exception exc)
{
    OnXamlResult(new XamlCruncherEventArgs(exc.Message)); return;
}

代码不是我的,我从书中拿出来。

问题是try-catch无法正常工作,或者至少就像我现在所知道的那样。 在调试期间,程序到达该行时停止:

ctrl = XamlReader.Load(xaml) as UserControl;

没有捕获异常。

我做错了什么或如何解决这个问题?

“xaml”是一个字符串。它取自文本框,如果用户正确键入xaml,程序应将xaml代码转换为对象,否则应显示相应的错误。

关于程序如何反应,我可以说调试停止(它让我返回到可视工作室指向错误)并且它不会表现得像进入无限循环。

1 个答案:

答案 0 :(得分:3)

可能是调试器因异常发生而中断。将一个断点放在捕获区内并且F5继续,它应该继续并且击中你的断点。

通过“破解”,我并不是说它失败了,我的意思是它会暂停在异常的违规行上执行应用程序,所以在这种情况下它是一件好事。

如果您使用的是Visual Studio,则可以启用/禁用此“中断异常”行为:

  • 调试 - >例外...(Ctrl + Alt + E)
  • 公共语言运行时例外,请根据需要选中右侧的框。

对于异常本身,除非专门用于显示异常,否则很可能无法加载提供的XAML字符串。