cciGetLastExceptionData

获取有关生成的最后一个异常的诊断信息。有关当前线程上生成的最后一个异常的信息在 CCI_EXCEPTION_ST 输出结构中返回。用户定义的扩展可以使用此函数来确定当实用程序函数返回错误代码时是否需要任何恢复。

更新开始

当某一实用程序函数或用户出口回调指出发生了异常时,您可以通过将 returnCode 设置为 CCI_EXCEPTION 来调用该函数。

注: 更新开始除非指出了 CCI_EXCEPTION,否则您不得调用 cciGetLastExceptionData(),因为它会返回不可预测的结果。更新结束
更新结束

如果 char* 是 US-ASCII,与异常相关联的 traceText 则转换为 char*。如果 traceText 使用另一种语言,则使用 cciGetLastExceptionDataW 及与其关联的 CCI_EXCEPTION_WIDE_ST 结构(它以 UTF-16 的格式存储 traceText )。

如果代理或 cciThrowExceptionW 已引发异常,CCI_EXCEPTION_ST 结构的 traceText 元素则是空字符串。

语法

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

参数

returnCode
接收来自函数(输出)的返回码。可能的返回码是:更新开始
  • 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
更新结束
更新开始exception_st更新结束
更新开始指定 CCI_EXCEPTION_ST 结构的地址来接收有关最后一个异常(输出)的数据。 exception_st.type 字段中返回的类型值为以下某项:
  • 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

exception_st.messageNumber 字段中返回的值对应于产生 BIP 编目异常消息的异常,其中包含高次字节的消息级别和四个低字节的 BIP 消息号。

更新结束

返回值

无。 如果发生错误,则 returnCode 参数表明错误原因。

示例

typedef struct exception_st {
  int               versionId;     /* Structure version identification */
  int               type;          /* Type of exception */
  int               messageNumber; /* Message number */
  int               insertCount;   /* Number of message inserts */
  CCI_STRING_ST     inserts[CCI_MAX_EXCEPTION_INSERTS];  
                                   /* Array of message insert areas */
  const char*       fileName;      /* Source: file name */
  int               lineNumber;    /* Source: line number in file */
  const char*       functionName;  /* Source: function name */
  const char*       traceText;     /* Trace text associated with exception */
  CCI_STRING_ST     objectName;    /* Object name */
  CCI_STRING_ST     objectType;    /* Object type */
} 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);
相关概念
用户定义的扩展
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as08551_