2011-01-24 9 views
2

問題は、アプリケーションが特定の方法でDoWork内で発生するエラーを処理することになっているということです。私のアプリケーションの公開版では、私はそれをテストする目的でエラーを生成していますが、それは何をすべきかをしていませんが、私はVSが例外でそれを渡す代わりに破る場合は、RunWorkerCompletedDoWorkのドキュメントに従って公開された後(またはVSデバッガで実行されていない場合)に発生します。例外時にVSが停止するのを防ぐ方法はありますか?そして、デバッグ中に発行された後に何をするのかを確認して、私のコードに何が間違っているのか確認できますか?Visual StudioでBackgroudWorker.DoWork内で例外が発生するのを防ぐことは可能ですか?

@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にかなり絡み合っているので、より多くのコードを投稿するのは良い考えではないと思います。エラーはどこにでもあります。最初にデバッグする可能性を捨てるだけです。

+0

関連するコードを掲載することはできますか? – ChrisF

+0

DoWorkメソッドを飾ることができる属性があることを知っています。それは '[DebuggerNonUserCode]'または '[DebuggerHidden]'でしたか... ...覚えていません... – dotjoe

+0

例外を投げるのではなく、ブレークポイントまたは条件付きブレークポイントを設定するだけではどうですか? (BTW、コードはあなたの質問を明確にするのに役立ちました)。 – ChrisF

答えて

3

DebuggerHidden

は、RunWorkerCompletedイベントに例外バブルアップをできるように、ここで使用することができます。

2

これは確かに重複していますが、とにかく... Visual Studioで[Debug/Exceptions ...]ダイアログを開き、VSに無視する例外をルックアップし、 'thrown'チェックボックスを無効にする必要があります。