Der Grund, warum die Ausnahme aufgetreten ist. Dies ist der Code, der von einer Hardwareausnahme generiert wird, oder der Code, der in der RaiseException-Funktion für eine softwaregenerierte Ausnahme angegeben wird. Im Folgenden sind die Ausnahmecodes aufgeführt, die wahrscheinlich aufgrund häufiger Programmierfehler auftreten.
Wert
Bedeutung
EXCEPTION_ACCESS_VIOLATION
Der Thread hat versucht, aus einer virtuellen Adresse zu lesen oder in diese zu schreiben, für die er nicht über den entsprechenden Zugriff verfügt.
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
Der Thread hat versucht, auf ein Arrayelement zuzugreifen, das außerhalb der Grenzen liegt, und die zugrunde liegende Hardware unterstützt die Begrenzungsüberprüfung.
EXCEPTION_BREAKPOINT
Es wurde ein Haltepunkt gefunden.
EXCEPTION_DATATYPE_MISALIGNMENT
Der Thread hat versucht, Daten zu lesen oder zu schreiben, die auf Hardware, die keine Ausrichtung bietet, falsch ausgerichtet sind. Beispielsweise müssen 16-Bit-Werte an 2-Byte-Grenzen ausgerichtet werden. 32-Bit-Werte an 4-Byte-Grenzen usw.
EXCEPTION_FLT_DENORMAL_OPERAND
Einer der Operanden in einem Gleitkommavorgang ist denormal. Ein denormaler Wert ist zu klein, um als Standard-Gleitkommawert darzustellen.
EXCEPTION_FLT_DIVIDE_BY_ZERO
Der Thread hat versucht, einen Gleitkommawert durch einen Gleitkomma divisor von 0 zu divisieren.
EXCEPTION_FLT_INEXACT_RESULT
Das Ergebnis eines Gleitkommavorgangs kann nicht genau als Dezimalbruch dargestellt werden.
EXCEPTION_FLT_INVALID_OPERATION
Diese Ausnahme stellt jede Gleitkomma-Ausnahme dar, die nicht in dieser Liste enthalten ist.
EXCEPTION_FLT_OVERFLOW
Der Exponent eines Gleitkommavorgangs ist größer als die vom entsprechenden Typ zulässige Größe.
EXCEPTION_FLT_STACK_CHECK
Der Stapel wurde als Ergebnis eines Gleitkommavorgangs über- oder unterlaufen.
EXCEPTION_FLT_UNDERFLOW
Der Exponent eines Gleitkommavorgangs ist kleiner als die vom entsprechenden Typ zulässige Größe.
EXCEPTION_ILLEGAL_INSTRUCTION
Der Thread hat versucht, eine ungültige Anweisung auszuführen.
EXCEPTION_IN_PAGE_ERROR
Der Thread hat versucht, auf eine Seite zuzugreifen, die nicht vorhanden war, und das System konnte die Seite nicht laden. Diese Ausnahme kann beispielsweise auftreten, wenn beim Ausführen eines Programms über das Netzwerk eine Netzwerkverbindung verloren geht.
EXCEPTION_INT_DIVIDE_BY_ZERO
Der Thread hat versucht, einen ganzzahligen Wert durch einen ganzzahligen Divisor von 0 zu divisieren.
EXCEPTION_INT_OVERFLOW
Das Ergebnis eines ganzzahligen Vorgangs verursachte eine Ausführung des wichtigsten Bits des Ergebnisses.
EXCEPTION_INVALID_DISPOSITION
Ein Ausnahmehandler hat eine ungültige Disposition an den Ausnahmeverteiler zurückgegeben. Bei Programmierern, die eine allgemeine Programmiersprache wie C verwenden, sollte diese Ausnahme nicht auftreten.
EXCEPTION_NONCONTINUABLE_EXCEPTION
Der Thread hat versucht, die Ausführung fortzusetzen, nachdem eine nicht zusammenhängende Ausnahme aufgetreten ist.
EXCEPTION_PRIV_INSTRUCTION
Der Thread hat versucht, eine Anweisung auszuführen, deren Vorgang im aktuellen Computermodus nicht zulässig ist.
EXCEPTION_SINGLE_STEP
Eine Ablaufverfolgungsfalle oder ein anderer Mechanismus mit einzeler Anweisung, der signalisiert, dass eine Anweisung ausgeführt wurde.
EXCEPTION_STACK_OVERFLOW
Der Thread hat seinen Stapel verbraucht.
Ein anderer Ausnahmecode tritt wahrscheinlich beim Debuggen von Konsolenprozessen auf. Es tritt nicht aufgrund eines Programmierfehlers auf. Der DBG_CONTROL_C Ausnahmecode tritt auf, wenn STRG+C in einen Konsolenprozess eingegeben wird, der STRG+C-Signale verarbeitet und debuggt wird. Dieser Ausnahmecode ist nicht für die Verarbeitung von Anwendungen vorgesehen. Es wird nur zum Nutzen des Debuggers ausgelöst und nur ausgelöst, wenn ein Debugger an den Konsolenprozess angefügt ist.
ExceptionFlags
Dieser Member kann entweder null sein, was eine fortlaufende Ausnahme angibt, oder EXCEPTION_NONCONTINUABLE, der eine nicht zusammenhängende Ausnahme angibt. Jeder Versuch, die Ausführung nach einer nicht feststellbaren Ausnahme fortzusetzen, verursacht die EXCEPTION_NONCONTINUABLE_EXCEPTION Ausnahme.
ExceptionRecord
Ein Zeiger auf eine zugeordnete MINIDUMP_EXCEPTION-Struktur . Ausnahmedatensätze können miteinander verkettet werden, um zusätzliche Informationen bereitzustellen, wenn geschachtelte Ausnahmen auftreten.
ExceptionAddress
Die Adresse, an der die Ausnahme aufgetreten ist.
NumberParameters
Die Anzahl der Parameter, die der Ausnahme zugeordnet sind. Dies ist die Anzahl der definierten Elemente im Array ExceptionInformation .
__unusedAlignment
Reserviert für die plattformübergreifende Strukturelementausrichtung. Legen Sie keinen Wert fest.
Ein Array zusätzlicher Argumente, die die Ausnahme beschreiben. Die RaiseException-Funktion kann dieses Array von Argumenten angeben. Bei den meisten Ausnahmecodes sind die Arrayelemente nicht definiert. Für den folgenden Ausnahmecode werden die Arrayelemente wie folgt definiert.
Ausnahmecode
Bedeutung
EXCEPTION_ACCESS_VIOLATION
Das erste Element des Arrays enthält ein Lese-/Schreibflag, das den Typ des Vorgangs angibt, der die Zugriffsverletzung verursacht hat. Wenn dieser Wert 0 ist, hat der Thread versucht, die nicht zugänglichen Daten zu lesen. Wenn dieser Wert 1 ist, hat der Thread versucht, in eine Adresse zu schreiben, auf die nicht zugegriffen werden kann.
Das zweite Arrayelement gibt die virtuelle Adresse der nicht zugänglichen Daten an.