2010-12-17 8 views
1

ich einen SL OOB app (es läuft nur OOB) und wunderte mich über den ReportErrorToDOM Code in der app.xaml.css:Wie sollte die OOB Silverlight 4 App unbehandelte Fehler in der Benutzeroberfläche anzeigen? (Htmlpage)

Von dem, was ich verstehe, Htmlpage wird nicht in OOB arbeiten, da es keine ist DOM/HTML? Ist dieser Code deshalb in einen TryCatch-Block eingebettet? (Dies ist der Standard für eine neue SL4-App).

Um meine OOB App unbehandelte Fehler auf der Benutzeroberfläche anzeigen zu lassen, sollte ich die HTMLPage durch eine MessageBox ersetzen.Show?

Ich kann nichts auf Google darüber finden, geschätzt Meinungen ...

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

Antwort

1

Als anfängliche Startposition ja Sie den Code mit dem Code ersetzen soll, die MessageBox.Show verwendet den Fehler anzuzeigen.

Was für eine Freigabe in Produktionsqualität angemessen ist, hängt von der Art der Anwendung ab. Streng genommen, wenn Ihre Anwendung eine unbehandelte Ausnahme gefunden hat, wäre sie in einem unbestimmten Zustand, so dass eine Nachrichtenbox und/oder das Ersetzen des Stamm-Visual Sinn machen könnte.

Wenn es ein Spiel dann einfach den Fehler schlucken könnte sogar angemessen sein oder nur noting es in einigen Protokoll.

+0

Vielen Dank für Ihren Ratschlag Anthony. Ich werde wahrscheinlich den Fehler protokollieren und etwas Grundlegendes in der MessageBox anzeigen. – Rodney

0

Werfen Sie einen Blick auf die Silverlight Navigation Application Vorlage in VS - es verwendet ein ChildWindow, um Fehler anzuzeigen, und dies funktioniert auch OOB. Sie könnten einfach ein Dummy-Projekt aus dieser Vorlage generieren und den Großteil des Codes in Ihre App kopieren/einfügen, um schnell loszulegen und dann die Benutzeroberfläche an Ihre Bedürfnisse anzupassen.