0

构建一个在浏览器中运行的 Silverlight 5 应用程序,但在 JavaScript 中出现一些令人讨厌的错误,当附加调试器时,由于某种原因,它们没有被 Visual Studio 捕获。我已经完成了一些简单的事情(创建带有 Web 项目的 VS SL 5 项目)。当我调试时,错误通过JS显示在浏览器中......而不是在Visual Studio中。

我可以设置断点并遍历它们,但是当发生未处理的异常时,SL 只是在页面中冒泡(如预期的那样),但 VS 没有捕捉到它。

我已验证 VS 已附加到 IE 进程和 Type=Silverlight。现在我要解决的错误是 4004 错误代码 (category=managedruntimeerror) 带有“system.argumentexception:值不在预期范围内”的消息,但我找不到发生这种情况的地方/ oa堆栈更详细。我得到的只是“Visual Studio JIT 调试器”,它看起来很像这个http://www.scottleckie.com/2010/04/code-4004-unhandled-error-in-silverlight-application/但他的解决方案不是不为我工作...

4

1 回答 1

0

查看您的 App.xaml.cs,您会发现一个名为 Application_UnhandledException 的处理程序。
应该有一些类似的代码:

    Deployment.Current.Dispatcher.BeginInvoke(delegate
    {
        ReportErrorToDOM(e);
    });

将其替换为您的自定义错误处理方法。
ReporterErrorToDOM 是在您的浏览器中触发 javascript 错误的原因。


如果没有,您需要设置一个:

public App()
{
    this.UnhandledException += this.Application_UnhandledException;
    ...
}
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
    // Handle exception here
    ...
    // Don't forget this !
    e.Handled = true;
}
于 2012-05-26T13:13:36.603 回答