1

我有一个 SL OOB 应用程序(它只运行 OOB)并且想知道 app.xaml.css 中的 ReportErrorToDOM 代码:

据我了解,HtmlPage 不会在 OOB 中工作,因为没有 DOM/HTML?这就是为什么这段代码被包装在 TryCatch 块中的原因吗?(这是新 SL4 应用程序的默认设置)。

为了让我的 OOB 应用程序向 UI 显示未处理的错误,我是否应该将 HTMLPage 替换为 MessageBox.Show?

我在谷歌上找不到任何关于此的信息,感谢意见...

  private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
    {
        try
        {
            string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
            errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");

            System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
        }
        catch (Exception)
        {
        }
    }
4

2 回答 2

1

作为初始起始位置,是的,您应该将代码替换为使用 MessageBox.Show 来显示错误的代码。

适合生产质量版本的内容取决于应用程序的类型。严格来说,如果您的应用程序遇到未处理的异常,它将处于不确定状态,因此消息框和/或根视觉的替换可能是有意义的。

如果它是一个游戏,那么简单地吞下错误甚至可能是合适的,或者只是在一些日志中记录它。

于 2010-12-17T08:11:14.980 回答
0

看看 VS 中的 Silverlight Navigation Application 模板——它使用 ChildWindow 来显示错误,这也适用于 OOB。您可以从这个模板生成一个虚拟项目,然后将大部分代码复制/粘贴到您的应用程序以快速启动,然后调整 UI 以满足您的需求。

于 2010-12-30T19:25:15.787 回答