0

入れ子のループシナリオがあり、それをデバッグモードで実行しています。例:Nested Loopシナリオ、デバッグモードで例外の前に値を取得する - Visual Studio

for (int i = 0; i < listTest.Count; i++) 
{ 
    for (int j = 0; j < anotherList.Count; j++) 
    { 
     //Some logic that throws an exception 
    } 
} 

例外が発生する直前のi, j, listTest[i] and anotherLIst[j]の値を知るために私のための方法はありますか?カウント値が高い場合は、ループをループして例外が発生する前にこれらの値を監視することは現実的ではありません。

答えて

2

まず、あなたが投げたときに例外でブレークするVS2008の設定を変更できます。

Debug >> Exception >> Common Language Runtime Exceptions Dialog 

これは、デバッガは、問題の例外を生成するコードの行で停止させ、そしてijうべきその時点で範囲内にあること。

ループ変数iとjをループ外に昇格させることもできます。ように:

int i, j; 
for (i = 0; i < listTest.Count; i++) 
{ 
    for (j = 0; j < anotherList.Count; j++) 
    { 
     //Some logic that throws an exception 
    } 
} 
+0

VSの隠された宝石の一つ。 –

+0

あなたは私にそれをビートする – Justin

1

try/catchブロックで2番目のループ内のすべてのコードを囲みます。例外をキャッチして、それを再投入する。 catch内の行にブレークポイントを配置します。例外が発生すると、iとjは例外時の値になります。

1

すべての例外に対してブレークするようにVisual Studioをセットアップできます。 Visual Studioで、メニューのDebug-> Exceptionsに移動します。 Common Language Runtime Exceptionsの例外がスローされたときに中断するチェック。これはキャッチなしでここで壊れます。

注:これは常に必要ではありません。例外をスローする可能性のあるロジックを使用している場合は、try/catchを使用する必要があります。

関連する問題