Modifica e continuazione C#: errore 4032

Se si modifica un gestore catch/finally con un'istruzione attiva nel blocco try, la sessione di debug non potrà continuare quando è attivo Modifica e continuazione.

Questo errore si verifica quando si tenta di modificare un gestore catch o finally il cui blocco try contiene un'istruzione attiva. L'errore viene generato solo se il frame attivo non si trova in cima allo stack di chiamate. In tal caso, i gestori catch e finally vengono contrassegnati automaticamente come di sola lettura. Questo errore si verifica pertanto in rari casi.

Si consideri il codice di esempio seguente:

#define EXAMPLE

class Program

{

   static void Example()

   {

      ...

   }

   static void Main(string[] args)

   {

      try

      {

         Example();

      }

#if EXAMPLE

      catch

      {

       ...

      }

#else

      catch(exception e)

      {

         ...

      }

#endif

   }

}

Se si imposta un punto di interruzione nella chiamata a Example e quindi si modifica #define EXAMPLE in #define EXAMPLE2, si verificherà questo errore.

Per correggere l'errore

  • Annullare le modifiche e continuare il debug. È possibile apportare la modifica in un secondo momento, quando l'istruzione non è più attiva.

    —oppure—

    Scegliere Termina debug dal menu Debug, apportare le modifiche, quindi avviare una nuova sessione di debug.

Vedere anche

Riferimenti

try-catch-finally (C# Reference)

Modifiche al codice supportate (C#)

Modifica e continuazione (Visual C#)

Altre risorse

Errori e avvisi di Modifica e continuazione (C#)