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.
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.
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.
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.
Ninguno. Si se produce un error, el parámetro returnCode indica la razón del mismo.
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);