2012-06-04 2 views
5

Wenn meine Anwendung Debuggen ich Meldungen wie diese die ganze Zeit sehen:Wie kann ich Visual Studio verhindern poping wenn mein Background einen Fehler wirft

Eine Ausnahme vom Typ ‚xxxx.xxxxx‘ aufgetreten in xxxxx. exe wurde aber nicht im Benutzercode behandelt.

Das Problem ist, dass ich BackgroundWorkers habe, die Ausnahmen in ihrem DoWork werfen, diese, die dann behandelt werden, indem die RunWorkerCompletedEventArgs.Error im RunWorkerCompleted Ereignisse Kontrolle - und es funktioniert zur Laufzeit groß.

Gibt es eine Möglichkeit zu verhindern, dass Visual Studio diese als "unbehandelt" anzeigt?

Ist dies nicht der richtige Weg, um Fehler von DoWork zurück zur Benutzeroberfläche zu senden?

Ich habe versucht, meine Exception ApplicationException zu erweitern und das Kontrollkästchen neben ApplicationException im Dialogfeld Ausnahmen zu deaktivieren, aber es wird immer noch angezeigt.

+1

Sie können bestimmte Ausnahmetypen im Dialogfeld debug -> Ausnahmen einfügen. Sie können die Ausnahmen dann explizit ignorieren. –

+0

DoWork wird durch Code mit einem catch-Block aufgerufen, so dass Ausnahmen niemals unbehandelt sind. Übergeben Sie die Ausnahme erneut im RunWorkerCompleted-Ereignishandler? –

+0

Danke Mike - das ist die Antwort, ich brauchte meinen speziellen Typ darin, nicht nur seine Basisklasse zu deaktivieren –

Antwort

3

Sie müssen Ausnahmen innerhalb der Methoden, die Ihre DoWork-Methode aufruft, abfangen und behandeln. Meine Empfehlung wäre, die Ausnahme abzufangen und dann das ReportProgress-Ereignis zu verwenden, um es zur reibungslosen Handhabung/Benachrichtigung an die Schnittstelle zurückzumelden. Sie möchten niemals eine Ausnahme "verschlucken", aber diese Berichterstellung ermöglicht es Ihnen, die Ausnahme ordnungsgemäß zu protokollieren oder den Benutzer auf weniger aufdringliche Weise zu benachrichtigen.

Beachten Sie, dass Sie die Überladung von ReportProgress that allows the use of a custom userState verwenden müssen, damit Sie entweder den ordnungsgemäßen Fortschritt melden oder die vollständige Ausnahme anhängen können.

Verwandte Themen