Partager via


Modifier & Continuer (C#) : erreur 4032

La modification d'un gestionnaire catch/finally avec une instruction active dans le bloc try empêche la session de débogage de se poursuivre tant que Modifier & Continuer est activé.

Cette erreur se produit lorsque vous tentez de modifier un gestionnaire catch ou finally dont le bloc try contient une instruction active. Elle se produit uniquement si le frame actif ne se trouve pas en haut de la pile des appels. Modifier & Continuer marque les gestionnaires catch et finally comme étant en lecture seule, cette erreur se produit donc uniquement dans des cas exceptionnels.

Prenons l'exemple du code suivant :

#define EXAMPLE

class Program

{

   static void Example()

   {

      ...

   }

   static void Main(string[] args)

   {

      try

      {

         Example();

      }

#if EXAMPLE

      catch

      {

       ...

      }

#else

      catch(exception e)

      {

         ...

      }

#endif

   }

}

Si vous définissez un point d'arrêt sur l'appel à Example, puis remplacez #define EXAMPLE par #define EXAMPLE2, cette erreur se produit.

Pour corriger cette erreur

  • Annulez les modifications, puis continuez à déboguer sans les modifications. Vous pouvez apporter des modifications ultérieurement lorsque l'instruction n'est plus active.

    - ou -

    Dans le menu Déboguer, cliquez sur Arrêter le débogage, puis apportez les modifications et démarrez une nouvelle session de débogage.

Voir aussi

Référence

try-catch-finally (référence C#)

Modifications de code prises en charge (C#)

Modifier & Continuer (Visual C#)

Autres ressources

Erreurs et avertissements de Modifier & Continuer (C#)