cciThrowExceptionW

Emite una excepción. La interfaz de intermediario de mensajes emite la excepción utilizando como datos de excepción los argumentos especificados.

Sintaxis

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

Parámetros

returnCode
Código de retorno de la función (salida). Si el parámetro messageSource es un nulo, returnCode se establece en CCI_INV_DATA_POINTER.
type
Tipo de excepción (entrada). Los valores válidos son:
  • CCI_FATAL_EXCEPTION
  • CCI_RECOVERABLE_EXCEPTION
  • CCI_CONFIGURATION_EXCEPTION
  • CCI_PARSER_EXCEPTION
  • CCI_CONVERSION_EXCEPTION
  • CCI_DATABASE_EXCEPTION
  • CCI_USER_EXCEPTION
file
Nombre de archivo de origen donde se ha generado la excepción (entrada). El valor es opcional, pero es útil al realizar depuraciones.
line
Número de línea del archivo de origen donde se ha generado la excepción (entrada). El valor es opcional, pero es útil al realizar depuraciones.
function
Nombre de función que ha generado la excepción (entrada). El valor es opcional, pero es útil al realizar depuraciones.
messageSource
Serie de caracteres que identifica el origen de mensajes Windows o el catálogo de mensajes de Linux y UNIX. Para utilizar el catálogo de mensajes de la versión de WebSphere Message Broker actual, utilice BIPV600 en todos los sistemas operativos.
messageNumber
Número de mensaje que identifica la excepción (entrada). Si messageNumber se especifica como cero, se supone que un mensaje no está disponible. Si messageNumber es distinto de cero, el mensaje especificado se graba en el registro de sucesos de intermediario con las inserciones proporcionadas en la lista de argumentos variables.
traceText
Información de rastreo que se graba en las anotaciones de rastreo de servicio de intermediario (entrada). La información es opcional, pero es útil al depurar problemas.
...
Lista de argumentos variables C que contiene las inserciones de mensaje que acompañan al mensaje (entrada). Estas inserciones se tratan como series de caracteres y se supone que los argumentos variables son de tipo puntero a CciChar.
Nota: El último argumento de esta lista debe ser (Ccichar*)0.

Valores de retorno

Ninguno. Si se produce un error, el parámetro returnCode indica la razón del mismo.

Ejemplo

void raiseExceptionWithBroker(CciChar* helpfulText, 
                              char* file, /* archivo de origen anómalo */
                              int line,   /* línea en archivo anterior */
                              char* func  /* función en archivo anterior */
                              ){
  int rc = CCI_SUCCESS;
  
  /* Definir el nombre de catálogo de mensajes */
  const char* catalog = "BIPv600";
  
  /* Convertir el nombre de catálogo en caracteres ampliados. 
   * BIP_DEF_COMP_CCSID es UTF-8 en distribuidos y LATIN1 en z/OS 
   */
  int maxChars =  strlen(catalog)+1;
  CciChar* wCatalog =(CciChar*)malloc(maxChars*sizeof(CciChar));
  cciMbsToUcs(&rc, catalog, wCatalog, maxChars, BIP_DEF_COMP_CCSID);

  /* Las líneas anteriores quizá hayan fallado, pero ya se está generando una
   * excepción, por lo que rc ahora se establece en satisfactorio. */
  rc = CCI_SUCCESS;

  /* Genera la excepción. La explicación se añadirá como traceText y
   * como una inserción en el mensaje 
   */
  cciThrowExceptionW(&rc,
                     CCI_FATAL_EXCEPTION,
                     file, line, func,
                     wCatalog, BIP2111,  
                     helpfulText,  
                     helpfulText,  
                     (CciChar*)0 
                     );     
  /* Las líneas anteriores quizá hayan fallado, pero ya se está generando una
   * excepción, por lo que el valor de rc no es importante. */
}
Conceptos relacionados
Extensiones definidas por el usuario
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as24560_