Partager via


Fonction RaiseException (errhandlingapi.h)

Déclenche une exception dans le thread appelant.

Syntaxe

void RaiseException(
  [in] DWORD           dwExceptionCode,
  [in] DWORD           dwExceptionFlags,
  [in] DWORD           nNumberOfArguments,
  [in] const ULONG_PTR *lpArguments
);

Paramètres

[in] dwExceptionCode

Code d’exception défini par l’application de l’exception en cours de déclenchement. L’expression de filtre et le bloc de gestionnaire d’exceptions d’un gestionnaire d’exceptions peuvent utiliser la fonction GetExceptionCode pour récupérer cette valeur.

Notez que le système efface le bit 28 de dwExceptionCode avant d’afficher un message Ce bit est un bit d’exception réservé, utilisé par le système à ses propres fins.

[in] dwExceptionFlags

Indicateurs d’exception. Il peut s’agir de zéro pour indiquer une exception continuable ou d’EXCEPTION_NONCONTINUABLE pour indiquer une exception non continue. Toute tentative de poursuite de l’exécution après une exception non continue provoque l’exception EXCEPTION_NONCONTINUABLE_EXCEPTION.

[in] nNumberOfArguments

Nombre d’arguments dans le tableau lpArguments . Cette valeur ne doit pas dépasser EXCEPTION_MAXIMUM_PARAMETERS. Ce paramètre est ignoré si lpArguments a la valeur NULL.

[in] lpArguments

Tableau d’arguments. Ce paramètre peut être NULL. Ces arguments peuvent contenir toutes les données définies par l’application qui doivent être passées à l’expression de filtre du gestionnaire d’exceptions.

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Notes

La fonction RaiseException permet à un processus d’utiliser la gestion structurée des exceptions pour gérer les exceptions privées, générées par logiciel et définies par l’application.

Si vous déclenchez une exception, le répartiteur d’exceptions effectue la recherche suivante d’un gestionnaire d’exceptions :

  1. Le système tente d’abord d’avertir le débogueur du processus, le cas échéant.
  2. Si le processus n’est pas en cours de débogage ou si le débogueur associé ne gère pas l’exception, le système tente de localiser un gestionnaire d’exceptions basé sur des frames en recherchant les frames de pile du thread dans lequel l’exception s’est produite. Le système recherche d’abord la trame de pile actuelle, puis recourt les trames de pile précédentes.
  3. Si aucun gestionnaire basé sur une trame n’est trouvé ou qu’aucun gestionnaire basé sur des images ne gère l’exception, le système effectue une deuxième tentative pour notifier le débogueur du processus.
  4. Si le processus n’est pas en cours de débogage ou si le débogueur associé ne gère pas l’exception, le système fournit une gestion par défaut basée sur le type d’exception. Pour la plupart des exceptions, l’action par défaut consiste à appeler la fonction ExitProcess.

Les valeurs spécifiées dans les paramètres dwExceptionCode, dwExceptionFlags, nNumberOfArguments et lpArguments peuvent être récupérées dans l’expression de filtre d’un gestionnaire d’exceptions basé sur un frame en appelant la fonction GetExceptionInformation . Un débogueur peut récupérer ces valeurs en appelant la fonction WaitForDebugEvent .

Exemples

Pour obtenir un exemple, consultez Utilisation d’un gestionnaire d’exceptions.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête errhandlingapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

ExitProcess

GetExceptionCode

GetExceptionInformation

Fonctions de gestion structurée des exceptions

Vue d’ensemble de la gestion structurée des exceptions

WaitForDebugEvent

API Vertdll disponibles dans les enclaves VBS