cciGetLastExceptionData

생성된 마지막 예외에 대한 진단 정보를 가져옵니다. 현재 스레드에서 생성된 마지막 예외에 대한 정보가 CCI_EXCEPTION_ST 출력 구조로 리턴됩니다. 사용자 정의 확장 구성요소는 이 함수를 사용하여 유틸리티 함수가 오류 코드를 리턴할 때 복구가 필요한지 여부를 판별합니다.

변경 시작

returnCode를 CCI_EXCEPTION으로 설정함으로써 유틸리티 함수 또는 사용자 엑시트 호출이 예외 발생을 나타낼 때 이 함수를 호출할 수 있습니다.

주: 변경 시작CCI_EXCEPTION이 표시되지 않으면 cciGetLastExceptionData() 함수를 호출하지 않아야 합니다. 그렇지 않으면 예측할 수 없는 결과를 리턴합니다. 변경 끝
변경 끝

char*이 US-ASCII인 경우 예외와 연관된 traceText char*로 변환됩니다. traceText 가 다른 언어로 되어 있는 경우 traceText 를 UTF-16으로 저장하는 cciGetLastExceptionDataW 및 연관된 CCI_EXCEPTION_WIDE_ST 구조를 사용하십시오.

브로커 또는 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

BIP 카탈로그 예외 메시지를 발생시키는 예외에 대해 exception_st.messageNumber 필드에 리턴되는 값은 상위 바이트의 메시지 레벨 및 하위 4바이트의 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/21
as08551_