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#)