cciGetLastExceptionData

Obtener información de diagnóstico acerca de la última excepción generada. Se devuelve información sobre la última excepción generada en la hebra actual en una estructura de salida CCI_EXCEPTION_ST. La extensión definida por el usuario puede utilizar esta función para determinar si se necesita una recuperación cuando una función de utilidad devuelve un código de error.

Inicio del cambio

Puede invocar esta función cuando una función de programa de utilidad o una devolución de llamada de salida de usuario indique que se ha producido una excepción, estableciendo returnCode en CCI_EXCEPTION.

Nota: Inicio del cambioA menos que se indique CCI_EXCEPTION no debe invocar cciGetLastExceptionData() ya que puede provocar resultados imprevisibles. Fin del cambio
Fin del cambio

El elemento traceText asociado a la excepción se convierte en un char* si char* es US-ASCII. Si traceText está en otro idioma, utilice cciGetLastExceptionDataW y su estructura CCI_EXCEPTION_WIDE_ST asociada que almacena traceText como UTF-16.

Si la excepción la ha generado el intermediario o cciThrowExceptionW, el elemento traceText de la estructura CCI_EXCEPTION_ST es una serie vacía.

Sintaxis

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

Parámetros

returnCode
Recibe el código de retorno de la función (salida). Los códigos de retorno posibles son:Inicio del cambio
  • CCI_INV_DATA_POINTER
  • CCI_NO_EXCEPTION_EXISTS
  • CCI_EXCEPTION
  • CCI_EXCEPTION_UNKNOWN
  • CCI_EXCEPTION_FATAL
  • CCI_EXCEPTION_RECOVERABLE
  • CCI_EXCEPTION_CONFIGURATION
  • CCI_EXCEPTION_PARSER
  • CCI_EXCEPTION_CONVERSION
  • CCI_EXCEPTION_DATABASE
  • CCI_EXCEPTION_USER
Fin del cambio
Inicio del cambioexception_stFin del cambio
Inicio del cambioEspecifica la dirección de una estructura CCI_EXCEPTION_ST para recibir los datos acerca de la última excepción (salida). El valor de tipo que devuelve el campo exception_st.type es uno de los siguientes:
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_BASE
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_TERMINATION
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_FATAL
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_RECOVERABLE
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_CONFIGURATION
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_PARSER
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_CONVERSION
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_DATABASE
  • CCI_EXCEPTION_ST_TYPE_EXCEPTION_USER

El valor devuelto en el campoexception_st.messageNumber para las excepciones que da como resultado un mensaje de excepción catalogado BIP, contiene el nivel de mensaje en los bytes de nivel superior y el número de mensaje BIP en los cuatros bytes de nivel inferior.

Fin del cambio

Valores de retorno

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

Ejemplo

typedef struct exception_st {
  int               versionId;     /* Identificación de versión de estructura */
  int               type;          /* Tipo de excepción */
  int               messageNumber; /* Número de mensaje */
  int               insertCount;   /* Número de inserciones de mensaje */
  CCI_STRING_ST     inserts[CCI_MAX_EXCEPTION_INSERTS];  
                                   /* Matriz de áreas de inserciones de mensaje */
  const char*       fileName;      /* Origen: nombre de archivo */
  int               lineNumber;    /* Origen: número de línea en archivo */
  const char*       functionName;  /* Origen: nombre de función */
  const char*       traceText;     /* Texto de rastreo asociado a la excepción */
  CCI_STRING_ST     objectName;    /* Nombre de objeto */
  CCI_STRING_ST     objectType;    /* Tipo de objeto */
} 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);
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
as08551_