Raison pour laquelle l’exception s’est produite. Il s’agit du code généré par une exception matérielle ou du code spécifié dans la fonction RaiseException pour une exception générée par logiciel. Voici les codes d’exception susceptibles de se produire en raison d’erreurs de programmation courantes.
Valeur
Signification
EXCEPTION_ACCESS_VIOLATION
Le thread a tenté de lire ou d’écrire dans une adresse virtuelle pour laquelle il ne dispose pas de l’accès approprié.
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
Le thread a tenté d’accéder à un élément de tableau hors limites et le matériel sous-jacent prend en charge la vérification des limites.
EXCEPTION_BREAKPOINT
Un point d’arrêt a été rencontré.
EXCEPTION_DATATYPE_MISALIGNMENT
Le thread a essayé de lire ou d’écrire des données mal alignées sur du matériel qui ne fournit pas d’alignement. Par exemple, les valeurs 16 bits doivent être alignées sur les limites de 2 octets ; Valeurs 32 bits sur les limites de 4 octets, et ainsi de suite.
EXCEPTION_FLT_DENORMAL_OPERAND
L’un des opérandes d’une opération à virgule flottante est dénormal. Une valeur dénormale est une valeur trop petite pour être représentée sous la forme d’une valeur à virgule flottante standard.
EXCEPTION_FLT_DIVIDE_BY_ZERO
Le thread a essayé de diviser une valeur à virgule flottante par un diviseur à virgule flottante de zéro.
EXCEPTION_FLT_INEXACT_RESULT
Le résultat d’une opération à virgule flottante ne peut pas être représenté exactement sous la forme d’une fraction décimale.
EXCEPTION_FLT_INVALID_OPERATION
Cette exception représente toute exception à virgule flottante non incluse dans cette liste.
EXCEPTION_FLT_OVERFLOW
L’exposant d’une opération à virgule flottante est supérieur à la magnitude autorisée par le type correspondant.
EXCEPTION_FLT_STACK_CHECK
La pile a débordé ou sous-flux à la suite d’une opération à virgule flottante.
EXCEPTION_FLT_UNDERFLOW
L’exposant d’une opération à virgule flottante est inférieur à la magnitude autorisée par le type correspondant.
EXCEPTION_ILLEGAL_INSTRUCTION
Le thread a essayé d’exécuter une instruction non valide.
EXCEPTION_IN_PAGE_ERROR
Le thread a essayé d’accéder à une page qui n’était pas présente et le système n’a pas pu charger la page. Par exemple, cette exception peut se produire si une connexion réseau est perdue lors de l’exécution d’un programme sur le réseau.
EXCEPTION_INT_DIVIDE_BY_ZERO
Le thread a essayé de diviser une valeur entière par un diviseur entier de zéro.
EXCEPTION_INT_OVERFLOW
Le résultat d’une opération entière a provoqué une exécution du bit le plus significatif du résultat.
EXCEPTION_INVALID_DISPOSITION
Un gestionnaire d’exceptions a retourné une disposition non valide au répartiteur d’exceptions. En principe, les programmeurs qui utilisent un langage de haut niveau comme C ne rencontrent jamais cette exception.
EXCEPTION_NONCONTINUABLE_EXCEPTION
Le thread a tenté de poursuivre l’exécution après qu’une exception non continue s’est produite.
EXCEPTION_PRIV_INSTRUCTION
Le thread a tenté d’exécuter une instruction dont l’opération n’est pas autorisée en mode machine actuel.
EXCEPTION_SINGLE_STEP
Une interruption de trace ou un autre mécanisme d’instruction unique a signalé qu’une instruction a été exécutée.
EXCEPTION_STACK_OVERFLOW
Le thread a utilisé sa pile.
Un autre code d’exception est susceptible de se produire lors du débogage des processus de console. Elle ne se produit pas en raison d’une erreur de programmation. Le code d’exception DBG_CONTROL_C se produit lorsque CTRL+C est entré dans un processus de console qui gère les signaux CTRL+C et est en cours de débogage. Ce code d’exception n’est pas destiné à être géré par les applications. Il est déclenché uniquement pour le bénéfice du débogueur et est déclenché uniquement lorsqu’un débogueur est attaché au processus de console.
ExceptionFlags
Ce membre peut être égal à zéro, indiquant une exception continuable ou EXCEPTION_NONCONTINUABLE, indiquant une exception non continue. Toute tentative de poursuite de l’exécution après une exception non continue provoque l’exception EXCEPTION_NONCONTINUABLE_EXCEPTION.
ExceptionRecord
Pointeur vers une structure de MINIDUMP_EXCEPTION associée. Les enregistrements d’exception peuvent être chaînés pour fournir des informations supplémentaires lorsque des exceptions imbriquées se produisent.
ExceptionAddress
Adresse où l’exception s’est produite.
NumberParameters
Nombre de paramètres associés à l’exception. Il s’agit du nombre d’éléments définis dans le tableau ExceptionInformation .
__unusedAlignment
Réservé à l’alignement des membres de structure multiplateforme. Ne pas définir.
Tableau d’arguments supplémentaires qui décrivent l’exception. La fonction RaiseException peut spécifier ce tableau d’arguments. Pour la plupart des codes d’exception, les éléments du tableau ne sont pas définis. Pour le code d’exception suivant, les éléments du tableau sont définis comme suit.
Code d'exception
Signification
EXCEPTION_ACCESS_VIOLATION
Le premier élément du tableau contient un indicateur de lecture/écriture qui indique le type d’opération qui a provoqué la violation d’accès. Si cette valeur est égale à zéro, le thread a tenté de lire les données inaccessibles. Si cette valeur est 1, le thread a tenté d’écrire dans une adresse inaccessible.
Le deuxième élément de tableau spécifie l’adresse virtuelle des données inaccessibles.