2009-08-28 13 views
10

Debug> Exceptionsメニューのにもかかわらず、特定の例外のスローでデバッガがブレークしないようにするプラグマ属性またはデバッガ属性はありますか?CLR例外がスローされたときに中断するように指示しましたか?Visual Studioでは、特定の例外のスローを破ることはできません。

一般的に私はデバッグ中に例外を壊してすぐに検査することができます。場合によっては、このコードブロックが例外をスローすることがあり、try-catchで処理したことが分かっているいくつかの孤立したケースがあります。 try-catchが最も正しい状況であるというコンセンサスがあったthe answer to this questionを参照してください。

メソッドにスローされた例外を無視するだけの属性(System.Diagnostics.DebuggerHiddenAttributeに似ています)を設定できます。

私は現在、Visual Studio 2008でこれを体験していますが、すべてのバージョンの回答があるかどうかはわかりません。

答えて

9

直接回答は、[デバッグ]メニューの[例外]メニュー項目にあります。これはソリューション/プロジェクトごとの設定です。 (ツール>オプション>デバッグはシステム全体の設定です)。ヘルプトピックを参照してください。Visual Studioデバッガ、方法:例外がスローされたときに中断します。http://msdn.microsoft.com/en-us/library/d14azbfh.aspxを入力してください。 [例外]ダイアログでは、例外がスローされるか、例外がデバッガに侵入するかを設定できます。

私はDebuggerStepThrough属性から多くを使い果たしています。一般的に

、私はデフォルトの例外を投げる(デバッグ>例外ユーザーが未処理がチェックされ、チェックボックスをオフにスローされます)のままにし、私がスローさをステップには興味がないも、例外では私が興味を持っていた方法のためのDebuggerStepThrough属性を追加しますその方法の中で。私はめったにDebuggerHiddenを使用し、DebuggerNonUserCodeともっと多くの使用をライブラリコードで取得します。

+0

'Debug' >>'例外 'は実際に私が有効にしたメニューです(ツールは誤植でした)。私は、例外のこの特定のインスタンス以外のすべての例外(例えば、 'IOException'やその他の一般的な例外など)を壊して、すべてをオフにすることはできません。 DebuggerStepThroughAttributeが私が探していた答えだと思われます。私はそれも例外に影響するとは思わなかった。ありがとう! – mckamey

+1

追加情報:DebuggerStepThroughは、そのメソッドで直接発生した例外を抑制します。呼び出しスタック内で発生した例外を抑止しません。 –

+0

最近変更されたことはわかりませんが(VS2015、多分?)、私の例外で捕捉され、処理された例外はありません。例外は再現されません。メソッドには 'DebuggerStepThrough'属性があります。それはまだ停止する - (スタックの1つ上のレベルにもかかわらず) - 私はF10を押すと、それは普通のように次の行に行きます - なぜ地獄はそこに止まっていますか?メソッドは何も再スローしませんでしたが、DebuggerStepThroughはそれが泡立つように動作しています... - 私はいくつかの他の属性を試してみるかもしれません。 – BrainSlugs83

関連する問題