cciThrowExceptionW

Lança uma exceção. A exceção é lançada pela interface do intermediário de mensagens utilizando os argumentos especificados como dados da exceção.

Sintaxe

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
O código de retorno da função (saída). Se o parâmetro messageSource for nulo, o returnCode será configurado como CCI_INV_DATA_POINTER.
type
O tipo de exceção (entrada). Os valores válidos são:
  • CCI_FATAL_EXCEPTION
  • CCI_RECOVERABLE_EXCEPTION
  • CCI_CONFIGURATION_EXCEPTION
  • CCI_PARSER_EXCEPTION
  • CCI_CONVERSION_EXCEPTION
  • CCI_DATABASE_EXCEPTION
  • CCI_USER_EXCEPTION
file
O nome do arquivo de origem onde a exceção foi gerada (entrada). O valor é opcional, mas é útil para fins de depuração.
line
O número da linha no arquivo de origem onde a exceção foi gerada (entrada). O valor é opcional, mas é útil para fins de depuração.
function
O nome da função que gerou a exceção (entrada). O valor é opcional, mas é útil para fins de depuração.
messageSource
Uma cadeia que identifica a origem da mensagem do Windows ou o catálogo de mensagens do Linux e do UNIX. Para utilizar o catálogo de mensagens de versão do WebSphere Message Broker atual, use BIPV600 em todos os sistemas operacionais.
messageNumber
O número da mensagem identificando a exceção (entrada). Se messageNumber for especificado como zero, supõe-se que a mensagem não está disponível. Se messageNumber for diferente de zero, a mensagem especificada é gravada no registro de eventos do intermediário com quaisquer inserções fornecidas na lista de argumentos variáveis.
traceText
Informações de rastreio que são gravadas no registro de rastreio de serviço do intermediário (entrada). As informações são opcionais, mas são úteis na depuração de problemas.
...
Uma lista de argumentos variáveis em C contendo quaisquer inserções de mensagem que acompanham a mensagem (entrada). Essas inserções são tratadas como cadeias de caracteres e os argumentos variáveis são considerados como sendo do tipo pointer to CciChar.
Nota: O último argumento nesta lista deve ser (Ccichar*)0.

Valores de Retorno

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

Exemplo

void raiseExceptionWithBroker(CciChar* helpfulText,
                              char* file, /* cujo arquivo de origem está interrompido */
                              int line,   /* linha no arquivo acima */
                              char* func  /* função no arquivo acima */
                              ){
  int rc = CCI_SUCCESS;
  
  /* Configurar o nome do catálogo de mensagens */
  const char* catalog = "BIPv600";
  
  /* Converter o nome do catálogo para caracteres amplos.
   * BIP_DEF_COMP_CCSID é UTF-8 em distribuído e LATIN1 no z/OS
   */
  int maxChars =  strlen(catalog)+1;
  CciChar* wCatalog =(CciChar*)malloc(maxChars*sizeof(CciChar));
  cciMbsToUcs(&rc, catalog, wCatalog, maxChars, BIP_DEF_COMP_CCSID);

  /* O item acima pode ter falhado, mas já está sendo emitida uma exceção,
   * assim, rc é agora configurado como tipo de sucesso. */
  rc = CCI_SUCCESS;

  /* Emitir a exceção. A explicação será incluída como o traceText e
   *  como uma inserção na mensagem
   */
  cciThrowExceptionW(&rc,
                     CCI_FATAL_EXCEPTION,
                     file, line, func,
                     wCatalog, BIP2111,
                     helpfulText,
                     helpfulText,
                     (CciChar*)0
                     );     
  /* O item acima pode ter falhado, mas já está sendo emitida uma exceção,
   * assim, o valor de rc não é importante. */
}
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
as24560_