2012-06-04 11 views
5

Quando il debug mia applicazione vedo messaggi come questo tutto il tempo:Come posso impedire che Visual Studio da poping quando il mio BackgroundWorker genera un errore

Un'eccezione di tipo 'xxxx.xxxxx' si è verificato in xxxxx. exe ma non è stato gestito nel codice utente.

Il problema è che ho BackgroundWorkers che producono eccezioni nella loro DoWork, questi che vengono poi gestiti controllando la RunWorkerCompletedEventArgs.Error in caso RunWorkerCompleted - e funziona benissimo in fase di esecuzione.

Esiste un modo per impedire a Visual Studio di visualizzarli come "non gestiti"?

Non è questo il modo corretto per restituire errori da DoWork all'interfaccia utente?

Ho provato a fare in modo che la mia eccezione estenda ApplicationException e deseleziona la casella accanto a ApplicationException nella finestra di dialogo delle eccezioni, ma viene comunque visualizzata.

+1

È possibile inserire specifici tipi di eccezione nella finestra di dialogo debug -> Eccezioni. È quindi possibile ignorare le eccezioni in modo esplicito. –

+0

DoWork viene chiamato dal codice con un blocco catch, quindi le eccezioni non vengono mai gestite. Stai rilanciando l'eccezione nel gestore di eventi RunWorkerCompleted? –

+0

Grazie Mike - questa è la risposta, avevo bisogno del mio tipo specifico lì per essere deselezionato non solo la sua base di partenza –

risposta

3

È necessario rilevare e gestire le eccezioni all'interno dei metodi richiamati dal metodo DoWork. La mia raccomandazione sarebbe quella di intercettare l'eccezione e quindi utilizzare l'evento ReportProgress per riportarlo all'interfaccia per una gestione/notifica senza problemi. Non si desidera mai "ingoiare" un'eccezione, ma questa segnalazione consente di registrare con garbo l'eccezione o di informare l'utente in modo meno intrusivo.

Tenere a mente, è necessario utilizzare il sovraccarico di ReportProgress that allows the use of a custom userState in modo che sia possibile segnalare il progresso corretto o allegare l'eccezione completa.

Problemi correlati