cciGetLastExceptionData

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.

Diese Funktion kann aufgerufen werden, wenn eine Dienstprogrammfunktion angegeben hat, dass eine Ausnahmebedingung aufgetreten ist, indem returnCode auf CCI_EXCEPTION gesetzt wurde.

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.

Syntax

void* cciGetLastExceptionData(
int*               returnCode,
CCI_EXCEPTION_ST*  exception_st);

Parameter

returnCode
Empfängt den Rückkehrcode von der Funktion (Ausgabe). Mögliche Rückkehrcodes sind:
  • CCI_FATAL_EXCEPTION
  • CCI_RECOVERABLE_EXCEPTION
  • CCI_CONFIGURATION_EXCEPTION
  • CCI_PARSER_EXCEPTION
  • CCI_CONVERSION_EXCEPTION
  • CCI_DATABASE_EXCEPTION
  • CCI_USER_EXCEPTION
  • CCI_UNKNOWN_EXCEPTION
  • CCI_NO_EXCEPTION_EXISTS
  • CCI_INV_DATA_POINTER
exception_st
Gibt die Adresse einer CCI_EXCEPTION_ST-Struktur zum Empfangen von Daten zur letzten Ausnahmebedingung an (Ausgabe).

Rückgabewerte

Keine. Wenn ein Fehler auftritt, gibt der Parameter returnCode die Fehlerursache an.

Beispiel

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);
Zugehörige Konzepte
Benutzerdefinierte Erweiterungen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
as08551_