Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’exemple suivant décrit le processus qui se produit lorsque des exceptions sont levées.
Processus de gestion des exceptions
Lorsqu’une exception est levée pour la première fois, mais avant qu’elle ne soit gérée par le gestionnaire d’exceptions dans le programme en cours de débogage, le moteur de débogage (DE) envoie un IDebugExceptionEvent2 au gestionnaire de débogage de session (SDM) comme événement d’arrêt. Il
IDebugExceptionEvent2est envoyé si seuls les paramètres de l’exception (spécifiés dans la boîte de dialogue Exceptions dans le package de débogage) spécifient que l’utilisateur souhaite s’arrêter sur les notifications d’exception de première chance.Le SDM appelle IDebugExceptionEvent2 ::GetException pour obtenir la propriété d’exception.
Le package de débogage appelle IDebugExceptionEvent2 ::CanPassToDebuggee pour déterminer les options à présenter à l’utilisateur.
Le package de débogage demande à l'utilisateur comment gérer l'exception en ouvrant une fenêtre de dialogue d'exception de première chance.
Si l’utilisateur choisit de continuer, le SDM appelle IDebugExceptionEvent2 ::CanPassToDebuggee.
Si la méthode retourne S_OK, appelle IDebugExceptionEvent2::PassToDebuggee.
- ou -
Si la méthode retourne S_FALSE, le programme en cours de débogage a une deuxième chance de gérer l’exception.
Si le programme en débogage n'a aucun gestionnaire pour une exception de deuxième chance, le DE envoie un
IDebugExceptionEvent2au SDM en tant que EVENT_SYNC_STOP.Le package de débogage demande à l’utilisateur comment gérer l’exception en ouvrant une boîte de dialogue pour une exception de première chance.
Le package de débogage appelle IDebugExceptionEvent2 ::CanPassToDebuggee pour déterminer les options à présenter à l’utilisateur.
Le package de débogage demande à l’utilisateur comment gérer l’exception en ouvrant une boîte de dialogue d’exception de deuxième chance.
Si la méthode retourne S_OK, appelle
IDebugExceptionEvent2::PassToDebuggee.