cciThrowExceptionW

Diese Funktion löst eine Ausnahmebedingung aus. Die Ausnahmebedingung wird von der Schnittstelle des Nachrichtenbrokers mit den angegebenen Argumenten als Ausnahmedaten ausgelöst.

Syntax

void cciThrowExceptionW(
  int*                        returnCode,
  CCI_EXCEPTION_TYPE  type,
  const char*         file,
  int                 line,
  const char*         function,
  const CciChar*      messageSource,
  int                 messageNumber,
  const CciChar*      traceText,
                      ...
);

Parameter

returnCode
Der Rückkehrcode aus der Funktion (Ausgabe). Wenn der Parameter 'messageSource' null ist, wird 'returnCode' auf CCI_INV_DATA_POINTER gesetzt.
type
Der Typ der Ausnahmebedingung (Eingabe). Gültige Werte sind:
  • CCI_FATAL_EXCEPTION
  • CCI_RECOVERABLE_EXCEPTION
  • CCI_CONFIGURATION_EXCEPTION
  • CCI_PARSER_EXCEPTION
  • CCI_CONVERSION_EXCEPTION
  • CCI_DATABASE_EXCEPTION
  • CCI_USER_EXCEPTION
file
Der Name der Quellendatei, von der aus die Ausnahmebedingung generiert wurde (Eingabe). Der Wert ist optional, er ist jedoch für die Fehlerbehebung hilfreich.
line
Die Zeilennummer der Quellendatei, von der aus die Ausnahmebedingung generiert wurde (Eingabe). Der Wert ist optional, er ist jedoch für die Fehlerbehebung hilfreich.
function
Der Name der Funktion, die die Ausnahmebedingung generiert hat (Eingabe). Der Wert ist optional, er ist jedoch für die Fehlerbehebung hilfreich.
messageSource
Eine Zeichenfolge, die die Windows-Nachrichtenquelle oder den Linux- undUNIX-Nachrichtenkatalog angibt. Verwenden Sie auf allen Betriebssystemen 'BIPV600', um mit der aktuellen Version des Nachrichtenkatalogs vonWebSphere Message Broker zu arbeiten.
messageNumber
Die Nachrichtennummer, die die Ausnahmebedingung identifiziert (Eingabe). Wenn für messageNumber null angegeben wird, wird vorausgesetzt, dass keine Nachricht verfügbar ist. Wenn messageNumber ungleich null ist, wird die angegebene Nachricht mit Einfügungen, die in der Variablenargumentenliste angegeben sind, in das Ereignisprotokoll des Brokers geschrieben.
traceText
Trace-Informationen, die in das Traceprotokoll des Broker-Services geschrieben werden (Eingabe). Die Informationen sind optional, sie sind jedoch für die Fehlerbehebung hilfreich.
...
Eine C-Variablenargumentenliste, die Nachrichteneinfügungen enthält, die der Nachricht beigefügt sind (Eingabe). Diese Einfügungen werden als Zeichenfolgen behandelt, und es wird vorausgesetzt, dass die Variablenargumente vom Typ pointer to CciChar sind.
Anmerkung: Das letzte Argument in dieser Liste muss (Ccichar*)0 sein.

Rückgabewerte

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

Beispiel

void raiseExceptionWithBroker(CciChar* helpfulText, 
                              char* file, /* which source file is broken */
                              int line,   /* line in above file */
                              char* func  /* function in above file */
                              ){
  int          rc = CCI_SUCCESS;
  
  /* Set up the message catalog name */
  const char* catalog = "BIPv600";
  
  /* Convert the catalog name to wide characters. 
   * BIP_DEF_COMP_CCSID is UTF-8 on distributed and LATIN1 on z/OS 
   */
  int maxChars =  strlen(catalog)+1;
  CciChar* wCatalog =(CciChar*)malloc(maxChars*sizeof(CciChar));
  cciMbsToUcs(&rc, catalog, wCatalog, maxChars, BIP_DEF_COMP_CCSID);

  /* The above might have failed, but we are already throwing an exception,
   * so rc is now set to type success. */
  rc = CCI_SUCCESS;

  /* Throw the exception. The explanation will be added as the traceText and
   *  as an insert to the message 
   */
  cciThrowExceptionW(&rc,
                     CCI_FATAL_EXCEPTION,
                     file, line, func,
                     wCatalog, BIP2111,  
                     helpfulText,  
                     helpfulText,  
                     (CciChar*)0 
                     );     
  /* The above might have failed, but we are already throwing an exception,
   * so the value of rc is not important. */
}
Zugehörige Konzepte
Benutzerdefinierte Erweiterungen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
as24560_