C#, режим "Изменить и продолжить": ошибка 4033
Изменение оператора Try/Catch/Finally, когда конечный блок активен, позволит продолжить сеанс отладки если включен режим "Изменить и продолжить".
Эта ошибка возникает при попытке изменить инструкцию try, catch или finally, если соответствующий блок finally содержит активную инструкцию. Эта ошибка возникает, только когда во фрейме содержится, что активная инструкция не на вершине стека вызовов. Дополнительные сведения см. в разделе Активные операторы.
Рассмотрим следующий пример:
class Program
{
static void Example() { }
static void Main(string[] args)
{
try
{
int a = 100;
}
finally
{
Example();
}
}
}
Если задать точку останова в вызове Example, затем отладить приложение и попробовать изменить a = 100 на a = 10, возникнет ошибка.
Исправление этой ошибки
Отмените изменения и затем продолжайте отладку без изменений. Можно внести изменения позже, когда инструкция уже не активна.
—или—
В меню Отладка выберите команду Остановить отладку, затем внесите изменения в код и начните отладку заново.
См. также
Ссылки
try-catch-finally (Справочник по C#)
Поддерживаемые изменения кода (C#)
Режим "Изменить и продолжить" (Visual C#)