Diese Funktion ruft Diagnoseinformationen zur letzten generierten Ausnahmebedingung ab. Informationen zur letzten generierten Ausnahmebedingung für den aktuellen Thread werden in einer CCI_EXCEPTION_ST-Ausgabestruktur zurückgegeben. Die benutzerdefinierte Erweiterung kann diese Funktion verwenden, 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 Tracetext , der zur Ausnahmebedingung gehört, wird in char* umgewandelt, wenn char* US-ASCII ist. Wenn der Tracetext in einer anderen Sprache ist, verwenden Sie cciGetLastExceptionDataW und die dazugehörige Struktur CCI_EXCEPTION_WIDE_ST, die den Tracetext als UTF-16 speichert.
Wenn die Ausnahmebedingung vom Broker oder von cciThrowExceptionW ausgegeben wurde, ist das Tracetext -Element der Struktur CCI_EXCEPTION_ST eine leere Zeichenfolge.
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_st { int versionId; /* Versionskennung der Struktur */ int type; /* Typ der Ausnahmebedingung */ int messageNumber; /* Nachrichtennummer */ int insertCount; /* Anzahl an Nachrichteneinsätzen */ CCI_STRING_ST inserts[CCI_MAX_EXCEPTION_INSERTS]; /* Array der Nachrichtenimplementierungsbereiche */ const char* fileName; /* Quelle: Dateiname */ int lineNumber; /* Quelle: Zeilennummer in der Datei */ const char* functionName; /* Quelle: Funktionsname */ const char* traceText; /* Zur Ausnahmebedingung zugehöriger Tracetext */ CCI_STRING_ST objectName; /* Objektname */ CCI_STRING_ST objectType; /* Objekttyp */ } CCI_EXCEPTION_ST; CCI_EXCEPTION_ST exception_st = malloc(sizeof(CCI_EXCEPTION_ST)); int rc = 0; memset(&exception_st,0,sizeof(exception_st)); cciGetLastExceptionData(&rc, &exception_st);