IDebugStackFrame3 : : InterceptCurrentException
Appelé par le débogueur sur le frame de pile actuel lorsqu'il souhaite intercepter l'exception actuelle.
HRESULT InterceptCurrentException(
INTERCEPT_EXCEPTION_ACTION dwFlags,
UINT64* pqwCookie
);
int InterceptCurrentException(
uint dwFlags,
out ulong pqwCookie
);
Paramètres
dwFlags
[in] Spécifie les différentes actions. Actuellement, seule la valeur IEA_INTERCEPT d' INTERCEPT_EXCEPTION_ACTION est prise en charge et doit être spécifié.pqwCookie
[out] valeur unique identifiant une exception particulière.
Valeur de retour
En cas de réussite, retourne S_OK ; sinon, retourne un code d'erreur.
Voici le plus de retour d'erreur courante.
Erreur |
Description |
---|---|
E_EXCEPTION_CANNOT_BE_INTERCEPTED |
L'exception actuelle ne peut pas être interceptée. |
E_EXCEPTION_CANNOT_UNWIND_ABOVE_CALLBACK |
Le frame actuel d'exécution n'a pas été trouvé un gestionnaire encore. |
E_INTERCEPT_CURRENT_EXCEPTION_NOT_SUPPORTED |
cette méthode n'est pas prise en charge pour ce frame. |
Notes
Lorsqu'une exception est levée, le contrôle de gains de débogueur du runtime à des points importants durant le processus de gestion des exceptions. Pendant ces points clés, le débogueur peut demander le frame de pile actuel si le frame souhaite intercepter l'exception. Ainsi, une exception interceptée est essentiellement un gestionnaire d'exceptions à la volée pour un frame de pile, même si ce frame de pile n'a pas de gestionnaire d'exceptions (par exemple, un bloc try/catch dans le code du programme).
Lorsque le débogueur souhaite de déterminer si l'exception est interceptée, elle appelle cette méthode sur l'objet actuel du frame de pile. Cette méthode est chargé de gérer tous les détails de l'exception. Si l'interface d' IDebugStackFrame3 n'est pas implémentée ou la méthode d' InterceptStackException retourne une erreur, le débogueur continue de traiter l'exception normalement.
Notes
Les exceptions peuvent être désactivées uniquement dans le code managé, c. autrement dit., lorsque le programme débogué s'exécute sous le runtime ASP.NET.).Naturellement, des tiers implémenteurs de langage peut implémenter InterceptStackException dans leurs propres moteurs de débogage s'ils choisissent faire.
Une fois l'interception terminée, IDebugInterceptExceptionCompleteEvent2 est signalé.