C# 编辑并继续:错误 4033

当启用“编辑并继续”后,如果在 finally 块处于活动状态时修改 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#)

其他资源

“编辑并继续”错误和警告 (C#)