Сценарий вложенного цикла, получение значений до исключения в режиме отладки - Visual Studio - PullRequest
0 голосов
/ 17 июля 2009

Если у меня есть сценарий с вложенным циклом, и я вхожу в него в режиме отладки. Пример:

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] непосредственно перед тем, как произошло исключение? Если значения счетчика высоки, нецелесообразно циклически проходить по циклам и наблюдать за этими значениями до возникновения исключения

Ответы [ 3 ]

2 голосов
/ 17 июля 2009

Во-первых, вы можете изменить настройки в VS2008, чтобы отключить исключение при выдаче:

Debug >> Exception >> Common Language Runtime Exceptions Dialog

Это приведет к остановке отладчика на строке кода, которая генерирует исключающее исключение, и i и j должны находиться в области действия в этой точке.

Вы также можете выдвигать переменные цикла 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
   }
}
1 голос
/ 17 июля 2009

Вы можете настроить Visual Studio на разрыв для всех исключений. В Visual Studio зайдите в Debug-> Исключения в меню. Проверка на разрыв при возникновении исключения для исключений общего времени выполнения. Это заставит его сломаться здесь без защелки.

Примечание: вы, вероятно, не хотите этого все время, и если вы используете логику, которая может вызвать исключение, вы должны использовать try / catch.

1 голос
/ 17 июля 2009

Окружите весь код во втором цикле блоком try / catch. Поймай исключение и отбрось его. Поместите свою точку останова на линию внутри улова. Когда возникает исключение, i и j должны быть значением во время исключения.

...