cciGetLastExceptionData

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_ST. A extensão definida pelo usuário pode utilizar essa função para determinar se alguma recuperação é necessária quando uma função utilitária retorna um código de erro.

Início da mudança

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.

Nota: Início da mudançaA menos que CCI_EXCEPTION seja indicado, você não deve chamar cciGetLastExceptionData() já que retorna resultados imprevisíveis.Fim da mudança
Fim da mudança

O traceText associado à exceção é convertido em um char*, se o char* for US-ASCII. Se o traceText estiver em outro idioma, utilize cciGetLastExceptionDataW e sua estrutura CCI_EXCEPTION_WIDE_ST associada, que armazena traceText como UTF-16.

Se a exceção tiver sido destacada pelo intermediário ou pela cciThrowExceptionW, o elemento traceText da estrutura CCI_EXCEPTION_ST é uma cadeia vazia.

Sintaxe

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

Parâmetros

returnCode
Recebe o código de retorno da função (saída).Os possíveis códigos de retorno são:Início da mudança
  • 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
Fim da mudança
Início da mudançaexception_stFim da mudança
Início da mudançaEspecifica o endereço de uma estrutura CCI_EXCEPTION_ST para receber dados sobre a última exceção (saída).O valor do tipo retornado no campo exception_st.type é um dos seguintes.
  • 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

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.

Fim da mudança

Valores de Retorno

Nenhuma. Se ocorrer um erro, o parâmetro returnCode indica o motivo do erro.

Exemplo

typedef struct exception_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 */
  const char*       traceText;     /* Texto de rastreio associado à exceção */
  CCI_STRING_ST     objectName;    /* Nome do 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);
Conceitos relacionados
Extensões Definidas pelo Usuário
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
as08551_