C#, режим "Изменить и продолжить": ошибка 4032
Когда активная инструкция находится в блоке try, при включенном режиме "Изменить и продолжить" изменение обработчика catch/finally приведет к завершению сеанса отладки
Эта ошибка возникает при попытке изменить обработчик catch или finally, блок try которого содержит активную инструкцию. Она возникает, только если активный фрейм не находится в верхней части стека вызова. Режим "Изменить и продолжить" помечает обработчики catch и finally как "только для чтения", поэтому эта ошибка возникает только в нестандартной ситуации.
Рассмотрим следующий пример:
#define EXAMPLE
class Program
{
static void Example()
{
...
}
static void Main(string[] args)
{
try
{
Example();
}
#if EXAMPLE
catch
{
...
}
#else
catch(exception e)
{
...
}
#endif
}
}
Если установить точку останова на вызове Example, затем изменить #define EXAMPLE на #define EXAMPLE2, возникнет эта ошибка.
Исправление этой ошибки
Отмените изменения и затем продолжайте отладку без изменений. Можно внести изменения позже, когда инструкция уже не активна.
—или—
В меню Отладка выберите команду Остановить отладку, затем внесите изменения в код и начните отладку заново.
См. также
Ссылки
try-catch-finally (Справочник по C#)
Поддерживаемые изменения кода (C#)
Режим "Изменить и продолжить" (Visual C#)