首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未捕获Silverlight 3 XamlReader异常

未捕获Silverlight 3 XamlReader异常
EN

Stack Overflow用户
提问于 2009-11-09 22:01:12
回答 3查看 496关注 0票数 1

当我将XamlReader.Load()与无效的XAML字符串一起使用时,虽然位于try-catch- XAMLParseException块中,但结果捕获不到:

代码语言:javascript
复制
 try
 {
        UIElement xamlCode = XamlReader.Load(XamlText) as UIElement;
 }
 catch (Exception ex)
 {
        ErrorText = ex.Message;
 }

代码是从DispatcherTimer的Tick-Event中调用的,但在像MouseLeftButtonDown这样的事件中,异常不会被捕获,从而导致我调用.Load()的代码行中断。

有人知道如何捕获此异常并恢复正常的程序活动吗?

谢谢,安德烈

EN

回答 3

Stack Overflow用户

发布于 2009-11-23 00:16:41

这段代码不能捕获异常,这是完全难以理解的。您如何确定此处发生了XAMLParseException?您确定不是来自项目中的其他Xaml加载吗?

票数 0
EN

Stack Overflow用户

发布于 2010-05-07 22:13:42

一直都是这样吗?还是只在调试时使用?

我知道这是一个非常晚的答案,你可能已经找到了解决方案,因为作为参考,人们发现你的问题与他们的相似(比如我的案例),我的答案可能仍然有用。

如果它在调试时发生,可能是因为exeption被配置为抛出。

您可以对此进行更改:

  1. 自定义调试菜单,并将" Exceptions“命令添加到该菜单。
  2. 在”Exceptions“配置中,向下钻取到System.Windows.Markup.XamlParseException,它位于"Throw”列的“Common Language Runtime Exceptions.
  3. Remove check”下。
票数 0
EN

Stack Overflow用户

发布于 2010-10-16 02:20:29

有各种Silverlight操作被“重新编组”到单独的线程上,这大概是出于各种充分和充分的原因。它看起来有点像这样:

代码语言:javascript
复制
Dispatcher.BeginInvoke(() => LoadSomeXamlOrSomething());

在LoadSomeXamlOrSomething()中抛出的任何异常都不会被普通的try/catch块捕获到。即使在SL4中,这种情况也会发生,比如加载格式无效的图像。这很烦人,MS需要想出一个更好的方法来处理这个问题,例如,让你在进行调用时注册一个异常处理程序。

在微软解决这个问题之前,你的选择是:

在App.Application_UnhandledException.中,

  • 会捕捉到异常
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1701138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档