Exceptions de matériel
La plupart des exceptions standard identifiées par le système d'exploitation sont des exceptions matériel-définies.Les fenêtres identifie quelques exceptions de niveau inférieur de logiciel, mais il s'agit généralement mieux gérés par le système d'exploitation.
Les fenêtres mappe les erreurs machine de différents processeurs à les codes d'exception dans cette section.Dans certains cas, un processeur peut générer uniquement un sous-ensemble de ces exceptions.Les fenêtres prétraite des informations sur l'exception et émet le code approprié d'exception.
les exceptions de matériel identifiées par des fenêtres sont résumées dans le tableau suivant :
code d'exception |
cause d'exception |
---|---|
STATUS_ACCESS_VIOLATION |
Lecture ou écriture à un emplacement mémoire inaccessible. |
STATUS_BREAKPOINT |
rencontre d'un point d'arrêt matériel-défini ; utilisé uniquement par les débogueurs. |
STATUS_DATATYPE_MISALIGNMENT |
lecture ou écriture aux données à une adresse qui n'est pas correctement alignée ; par exemple, les entités 16 bits doivent être alignées sur des limites de 2 octets.(Non applicable aux processeurs Intel 80x86.) |
STATUS_FLOAT_DIVIDE_BY_ZERO |
diviser le type à virgule flottante par 0,0. |
STATUS_FLOAT_OVERFLOW |
Dépasser l'exposant positif maximale du type à virgule flottante. |
STATUS_FLOAT_UNDERFLOW |
dépasser l'importance du plus bas exposant négatif du type à virgule flottante. |
STATUS_FLOATING_RESEVERED_OPERAND |
À l'aide d'un format à virgule flottante réservé (utilisation non valide de format). |
STATUS_ILLEGAL_INSTRUCTION |
Si vous essayez d'exécuter le code d'instruction non défini par le processeur. |
STATUS_PRIVILEGED_INSTRUCTION |
Exécutant une instruction non - autorisée dans le mode actuel de l'ordinateur. |
STATUS_INTEGER_DIVIDE_BY_ZERO |
Diviser un type entier de 0. |
STATUS_INTEGER_OVERFLOW |
Vous tentez une opération qui dépasse la plage de l'entier. |
STATUS_SINGLE_STEP |
Exécuter une instruction en mode pas - à - pas ; utilisé uniquement par les débogueurs. |
Plusieurs des exceptions répertoriées dans le tableau précédent sont conçues pour être gérées par les débogueurs, le système d'exploitation, ou un autre code de bas niveau.À l'exception de les erreurs entières et à virgule flottante, votre code ne doit pas gérer ces erreurs.Par conséquent, vous devez généralement utiliser le filtre de gestion des exceptions pour ignorer les exceptions (évaluez à 0).Sinon, vous pouvez empêcher les mécanismes de niveau inférieur de réponse appropriée.Vous pouvez, toutefois, prendre les précautions appropriées sur l'impact potentiel de ces erreurs de bas niveau par gestionnaires de terminaisons d'écriture.