Obtém informações de diagnóstico sobre a última exceção gerada. As informações sobre a última exceção gerada no encadeamento atual são retornadas em uma estrutura de saída CCI_EXCEPTION_WIDE_ST. A extensão definida pelo usuário utiliza essa função para determinar se qualquer recuperação é requerida quando a função do utilitário retorna um código de erro.
Você pode chamara essa função quando uma função de utilitário ou um retorno de chamada de saída de usuário indica que ocorreu uma exceção, configurando returnCode para CCI_EXCEPTION.
O valor retornado no campo exception_st.messageNumber, para exceções resultantes em uma mensagem de exceção BIP catalogada, contém o nível da mensagem nos bytes de ordem superiores e o número da mensagem BIP nos quatro bytes inferiores.
typedef struct exception_wide_st { int versionId; /* Identificação de versão de estrutura */ int type; /* Tipo de exceção */ int messageNumber; /* Número da mensagem */ int insertCount; /* Número de inserções da mensagem */ CCI_STRING_ST inserts[CCI_MAX_EXCEPTION_INSERTS]; /* Matriz de áreas de inserções de mensagens */ const char* fileName; /* Origem: nome do arquivo */ int lineNumber; /* Origem: número da linha no arquivo */ const char* functionName; /* Origem: nome da função */ CCI_STRING_ST traceText; /* Texto de rastreio associado à exceção */ CCI_STRING_ST objectName; /* Nome do objeto */ CCI_STRING_ST objectType; /* Tipo de objeto */ } CCI_EXCEPTION_WIDE_ST; CCI_EXCEPTION_WIDE_ST exception_st = malloc(sizeof(CCI_EXCEPTION_WIDE_ST)); int rc = 0; memset(&exception_st,0,sizeof(exception_st)); cciGetLastExceptionDataW(&rc, &exception_st);