Definieren von strukturierten Exceptions (C++)
Nach oben zu Strukturierte Exceptions unter Win32 (C++)
Das Auslösen einer Win32-Exception, die in demselben Programm behandelt wird, ist im Allgemeinen wenig sinnvoll: C++-Exceptions sind wirkungsvoller, erheblich besser portierbar und haben eine einfachere Syntax. Win32-Exceptions haben jedoch den Vorteil, dass sie von Komponenten behandelt werden können, die nicht mit demselben C++-Compiler compiliert worden sein müssen.
Der erste Schritt ist die Definition der Exception. Eine Exception ist ein 32-Bit-Integer mit dem folgenden Format (beginnend bei Bit 0):
Bit | Bedeutung |
31-30 | 11 = Fehler (normal) 00 = Erfolg 01 = Information 10 = Warnung |
29 | 1 = benutzerdefiniert |
28 | Reserviert |
27-0 | Benutzerdefiniert |
Zusätzlich zur Definition des Exception-Codes müssen Sie entscheiden, ob in die Exception weitere Informationen (zugreifbar für den Filter/die Behandlungsroutine aus dem Exception-Record) einbezogen werden sollen. Es gibt keine konventionelle Methode für das Codieren von zusätzlichen Parametern in dem Exception-Code.