7

[例外アシスタント] ダイアログ ボックスが表示される未処理の例外があります。

[詳細の表示...] をクリックすると、例外自体のカスタム オブジェクト モデルに、プロパティ グリッドで評価されない値が含まれていますが、すぐに表示されるウィンドウで評価できることがわかっています。(この場合、プロパティ グリッドではコレクションにドリルダウンできませんが、他のケースも考えられます)

コードを変更して try ブロックを追加せずに、イミディエイト ウィンドウに移動して、未処理の例外で式を評価するにはどうすればよいですか?

答えはおそらく、私がまだ知らない魔法のようなものになるでしょう。たとえば ?this.CurrentException や

関与する、System.Diagnostics.StackFrameまたは知っている何か。何か賢い。

デバッガー スレッドを使用してそこに移動する方法がありますが、それは非常に複雑です。あなたがそれを取り、解決策になるかもしれないラッパーでそれを簡単にすることができれば。

4

3 に答える 3

11

ユーザーが処理しないときだけでなく、例外がスローされたときにデバッガーを中断するように設定しようとしましたか?

これを行うには、VS2010 のメイン メニューに移動し、[デバッグ] メニューを選択します。次に、[例外...] を選択します。

次のようなダイアログが表示されます。 デバッグ -> 例外.. メニュー

スローされた列を選択します

例外がスローされると、イミディエイト ウィンドウでローカル変数を評価できるようになります。

[ローカル] タブで、$exception 変数を確認できます。 ローカル変数に $exception が含まれています

イミディエイト ウィンドウで「$exception」変数を使用できます。 $exception にアクセスするイミディエイト ウィンドウ

更新: また、例外処理を簡単に切り替えるには、Exception Breaker Visual Studio Extensionを使用することをお勧めします。これにより、[デバッグ] メニューにドリルダウンする代わりに、ツールバーから例外処理のブレークのオンとオフを切り替えることができます。

于 2013-11-07T01:13:30.943 に答える
1

Visual Studio 2010 についてはわかりませんが、Visual Studio 2012 では未処理の例外が発生すると、Localsウィンドウに という名前で表示されます$exception

于 2013-11-06T22:58:26.657 に答える
0

プロパティ グリッドで評価されないプロパティがあります

プロパティを評価できない場合、ご覧のようにデバッガーは役に立ちませ。したがって、即時ウィンドウは同じことを行います。

VS2010 で例外をスローし、評価しようとするとデバッガがクラッシュするような無効なプロパティがありました。プロパティから返される Null は、デバッガーにとって適切ではありませんでした。

old schoolこの問題に取り組み、 Trace.Writeをプロパティ内や他の場所に配置し、代わりに出力ウィンドウで書き込みレポートを監視することをお勧めします。

Visual C# でトレースおよびデバッグする方法

于 2013-11-07T00:01:47.000 に答える