cciGetLastExceptionDataW

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

更新开始

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

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

语法

void* cciGetLastExceptionDataW(
    int*                returnCode,
  CCI_EXCEPTION_WIDE_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_WIDE_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_wide_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 */
  CCI_STRING_ST     traceText;	    /* Trace text associated with exception */
  CCI_STRING_ST     objectName;    /* Object name */
  CCI_STRING_ST     objectType;    /* Object type */
} 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);
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as24620_