cciGetLastExceptionData

生成される最後の例外についての診断情報を取得します。 現行のスレッドで生成される最後の例外についての情報は、 CCI_EXCEPTION_ST 出力構造に戻されます。 このユーザー定義の拡張機能ではこの関数を使用して、 ユーティリティー関数がエラー・コードを戻すときにリカバリーが必要かどうかを判別できます。

変更の始まり

この関数は、ユーティリティー関数またはユーザー出口コールバックが returnCode を CCI_EXCEPTION に設定することによって例外が発生したことを示したときに呼び出すことができます。

注: 変更の始まりCCI_EXCEPTION が示された場合以外は、cciGetLastExceptionData() を呼び出さないでください。予測不能の結果が戻されるからです。変更の終わり
変更の終わり

char* が US-ASCII の場合、例外に関連した traceText char* に変換されます。traceText が別の言語の場合は、cciGetLastExceptionDataW と、それに関連した CCI_EXCEPTION_WIDE_ST 構造を使用してください。これにより、traceText が UTF-16 で保管されます。

例外がブローカーまたは 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 最終更新: 08/21/2006
as08551_