Можно ли предотвратить Visual Studio, чтобы сломаться на исключение внутри BackgroudWorker.DoWork - PullRequest
2 голосов
/ 25 января 2011

Проблема в том, что приложение должно обрабатывать ошибки, которые происходят внутри DoWork определенным образом.В опубликованной версии моего приложения я генерирую ошибку, чтобы протестировать его, и не делаю то, что должно, но если я отлаживаюсь, то VS прервется при исключении, вместо того, чтобы передать RunWorkerCompleted, чтоэто то, что произойдет после публикации (или когда он не работает под отладчиком VS) согласно документации DoWork .Есть ли способ предотвратить остановку VS в исключительной ситуации и заставить ее делать то, что она сделает после публикации во время отладки, чтобы я мог видеть, что не так с моим кодом?

@ ChrisF: Вот мой код.Я не думаю, что это сильно поможет:

    void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        if(null == e.Error) OnDownloadComplete(new DownloadCompleteEventArgs(e.Cancelled, null, e.Result as string));
        else OnDownloadComplete(new DownloadCompleteEventArgs(false, e.Error, null));
    }

    void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
    {
        throw new Exception("OMG!!!");
    }

Если не возможно сделать то, что я пытаюсь сделать, я могу попытаться найти другой способ найти свою ошибку.Я не думаю, что будет хорошей идеей размещать больше кода, поскольку он довольно запутан в OnDownloadComplete и ошибка может быть где угодно.Просто нужно сначала отказаться от возможности отладки.

Ответы [ 2 ]

3 голосов
/ 25 января 2011

DebuggerHidden

может использоваться здесь, чтобы исключить всплывающее сообщение о событии RunWorkerCompleted.

2 голосов
/ 25 января 2011

Это точно дубликат, но в любом случае ... вам следует открыть диалог Отладка / Исключения ... в Visual Studio, найти исключение, которое вы хотите игнорировать VS, и отключить флажок «брошенный».

...