生成される最後の例外についての診断情報を取得します。 現行のスレッドで生成される最後の例外についての情報は、 CCI_EXCEPTION_ST 出力構造に戻されます。 このユーザー定義の拡張機能ではこの関数を使用して、 ユーティリティー関数がエラー・コードを戻すときにリカバリーが必要かどうかを判別できます。
この関数は、returnCode を CCI_EXCEPTION に設定することによって、 例外が発生したことをユーティリティー関数が示した際に呼び出すことができます。
例外と関連した traceText は、char* が US-ASCII である場合、char* に変換されます。traceText が別の言語の場合は、cciGetLastExceptionDataW と、それに関連した CCI_EXCEPTION_WIDE_ST 構造を使用してください。これにより、traceText が UTF-16 で保管されます。
例外がブローカーまたは cciThrowExceptionW により出された場合、CCI_EXCEPTION_ST 構造の traceText エレメントは空ストリングとなります。
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);