我目前正在学习一本关于如何在运行时将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代码转换成对象,否则它应该显示相应的错误。
关于程序的反应,我可以说debug停止了(它返回到visual studio指出错误),并且它的行为不像进入无限循环。
发布于 2011-08-19 21:02:23
可能是调试器在异常发生时中断了。在catch和F5中放置一个断点以继续,它应该继续并命中您的断点。
我所说的“中断”并不意味着它失败了,我的意思是它会在异常的违规行上暂停应用程序的执行,所以在这种情况下这是一件好事。
如果您使用的是Visual Studio,则可以启用/禁用此“异常中断”行为:
至于异常本身,除非它专门用于显示异常,否则它很可能在加载所提供的XAML字符串时遇到问题。
https://stackoverflow.com/questions/7121943
复制相似问题