Diese Funktion ruft Diagnoseinformationen zur letzten generierten Ausnahmebedingung ab. Informationen zur zuletzt auf dem aktuellen Thread generierten Ausnahmebedingung werden in einer CCI_EXCEPTION_WIDE_ST Ausgabestruktur zurückgegeben. Die benutzerdefinierte Erweiterung verwendet diese Funktion, um festzustellen, ob eine Fehlerbehebung erforderlich ist, wenn eine Dienstprogrammfunktion einen Fehlercode zurückgibt.
Sie können diese Funktion aufrufen, wenn eine Dienstprogrammfunktion oder ein Benutzerexit-Callback angibt, dass eine Ausnahmebedingung aufgetreten ist, indem Sie returnCode auf 'CCI_EXCEPTION' setzen.
Der Wert, der im Feld exception_st.messageNumber für Ausnahmen zurückgegeben wurde, die zu einer BIP-Ausnahmebedingungsnachricht führen, enthält die Nachrichtenstufe in den höheren Bytes und die BIP-Nachrichtennummer in den niedrigeren vier Bytes.
typedef struct exception_wide_st { int versionId; /* Identifikation der Version der Struktur */ int type; /* Typ der Ausnahme */ int messageNumber; /* Nachrichtennummer */ int insertCount; /* Anzahl von Nachrichteneinfügungen */ CCI_STRING_ST inserts[CCI_MAX_EXCEPTION_INSERTS]; /* Array von Nachrichteneinfügebereichen */ const char* fileName; /* Quelle: Dateiname */ int lineNumber; /* Quelle: Zeilennummer in der Datei */ const char* functionName; /* Quelle: Funktionsname */ CCI_STRING_ST traceText; /* Mit der Ausnahme verbundener Trace-Text */ CCI_STRING_ST objectName; /* Objektname */ CCI_STRING_ST objectType; /* Objekttyp */ } CCI_EXCEPTION_WIDE_ST; CCI_EXCEPTION_WIDE_ST exception_st = malloc(sizeof(CCI_EXCEPTION_WIDE_ST)); int rc = 0; memset(&exception_st,0,sizeof(exception_st)); cciGetLastExceptionDataW(&rc, &exception_st);