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,则会发生此错误。
更正此错误
撤消更改,然后在不进行更改的情况下继续调试。 以后可以在语句不再活动时进行更改。
- 或 -
在**“调试”菜单上单击“停止调试”**,进行更改,然后启动新的调试会话。