2010-12-17 49 views
1

我有一個SL OOB應用程序(它只能運行OOB),並想知道有關在app.xaml.css的ReportErrorToDOM代碼:OOB Silverlight 4應用程序應該如何向UI顯示未處理的錯誤? (HtmlPage)

據我瞭解,HtmlPage不會在OOB工作,因爲沒有DOM/HTML?這就是爲什麼這個代碼被包裝在TryCatch塊中? (這是新的SL4應用程序的默認設置)。

爲了讓我的OOB應用程序向用戶界面顯示未處理的錯誤,我應該用一個MessageBox.Show來代替HTMLPage嗎?

我找不到這個在谷歌什麼,感謝意見...

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) 
     { 
     } 
    } 

回答

1

作爲最初的起始位置是你應該替換代碼,使用MessageBox.Show顯示錯誤代碼。

什麼適合生產質量發佈將取決於應用程序的類型。嚴格來說,如果您的應用程序遇到未處理的異常,它將處於不確定狀態,因此消息框和/或替換根視覺可能是有意義的。

如果它的遊戲,然後簡單地吞嚥錯誤,甚至可能是適當的或只是在一些日誌中記下它。

+0

感謝您的建議安東尼。我可能會記錄錯誤並在MessageBox中顯示一些基本信息。 – Rodney 2010-12-19 21:21:49

0

看看VS中的Silverlight導航應用程序模板 - 它使用ChildWindow來顯示錯誤,並且這也適用於OOB。您只需從該模板生成一個虛擬項目,然後將大部分代碼複製/粘貼到您的應用程序即可快速啓動,然後調整UI以滿足您的需求。