C# - Modifica e continuazione: errore 4032

Aggiornamento: novembre 2007

Messaggio di errore

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.
Modifying a catch/finally handler with an active statement in the try block will prevent the debug session from continuing while Edit and Continue is enabled

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 (Riferimenti per C#)

Modifiche al codice supportate (C#)

Modifica e continuazione (Visual C#)

Altre risorse

Errori e avvisi di Modifica e continuazione (C#)