Silverlight不会显示异常

时间:2012-01-21 02:18:26

标签: visual-studio debugging exception silverlight-4.0

我正在使用Silverlight中的某个项目,某个地方会抛出异常。我不关心修复异常......我只是想找到它。

而不是Visual Studio弹出并显示发生异常的行,而是获得一个标记为“Just In Time”的小窗口,其中提到了错误4004,一个托管运行时错误。它询问我想用哪个调试器来解决问题。但是,它只提供一个选项:Visual Studio的 new 实例。如果我尝试接受其提议,新实例会抱怨调试器已经附加。

为什么构建程序并且已经运行的VS实例没有捕获异常并显示它在哪里?

4 个答案:

答案 0 :(得分:4)

这是一种奇怪的行为。我要做的第一件事是更改一些设置

  • 禁用我的代码
  • 启用本机调试
  • 在第一次抛出异常时中断

这可以帮助您缩小发生异常的位置。

禁用我的代码

  • 工具 - >选项
  • 调试器
  • 取消选中“启用我的代码”

启用本机调试

  • 右键单击项目并选择属性
  • 转到“调试”选项卡
  • 选中“启用非托管调试”

在抛出第一个异常时中断

  • 调试 - >例外
  • 检查“公共语言运行时例外”的“投掷”

答案 1 :(得分:0)

Silverlight有吞咽异常的习惯。我称之为“无声失败”并且发现它非常昂贵且令人沮丧。使用Silverlight时,您可以做的所有事情都会暴露异常,例如绑定失败。

看看这里:http://msdn.microsoft.com/en-us/library/cc189070%28v=vs.95%29.aspx

还有一个元素设置让它们可视化绑定失败,但我忘了它是什么,因为我不再在Silverlight中工作了。

答案 2 :(得分:0)

看起来问题是调试的类型。在项目属性中,确保启用Silverlight调试。在您的网站项目中右键单击,转到属性,然后在底部的“Web”选项卡上有一个名为Debuggers的部分。确保选中Silverlight。

有时JS调试器附加到IE进程,这意味着附加了调试器,但它根本不是您想要的调试器。我认为这可能是导致这个问题的原因。

希望这会有所帮助。 米格尔

答案 3 :(得分:0)

单击debug,选择exception,将公共语言运行时异常标记为thrown。 我有同样的问题,它解决了我的问题