cciThrowExceptionW

cciThrowExceptionW 例外は、 メッセージ・ブローカー・インターフェースによってスローされて、指定した引数を例外データとして使用します。

構文

void cciThrowExceptionW(
  int*                returnCode,
  CCI_EXCEPTION_TYPE  type,
  const char*         file,
  int                 line,
  const char*         function,
  const CciChar*      messageSource,
  int                 messageNumber,
  const CciChar*      traceText,
                      ...
);

パラメーター

returnCode
関数からの戻りコード (出力)。messageSource パラメーターが NULL の場合、returnCode は CCI_INV_DATA_POINTER に設定されます。
type
例外のタイプ (入力)。 有効な値は以下のとおりです。
  • CCI_FATAL_EXCEPTION
  • CCI_RECOVERABLE_EXCEPTION
  • CCI_CONFIGURATION_EXCEPTION
  • CCI_PARSER_EXCEPTION
  • CCI_CONVERSION_EXCEPTION
  • CCI_DATABASE_EXCEPTION
  • CCI_USER_EXCEPTION
file
例外が生成されたソース・ファイル名 (入力)。 この値はオプションですが、デバッグ目的に役立てることができます。
line
例外が生成されたソース・ファイルでの行番号 (入力)。 この値はオプションですが、デバッグ目的に役立てることができます。
function
例外が生成された関数の名前 (入力)。 この値はオプションですが、デバッグ目的に役立てることができます。
messageSource
Windows® メッセージ・ソースまたは Linux® および UNIX® メッセージ・カタログを識別するストリング。 現行のブローカー・メッセージ・カタログを使用するには、 すべてのオペレーティング・システムで BIPv600 を指定します。
messageNumber
例外を識別するメッセージ番号 (入力)。 messageNumber にゼロが指定されている場合、メッセージが利用不能であると想定します。 messageNumber がゼロでない場合、 指定したメッセージがブローカー・イベント・ログに書き込まれ、 変数引数リストに任意の挿入が提供されます。
traceText
サービス・トレース・ログに書き込まれるトレース情報 (入力)。 この情報はオプションですが、問題のデバッグに役立てることができます。
...
メッセージに付随する任意のメッセージ挿入を含む C 変数引数リスト (入力)。 これらの挿入は文字ストリングとして扱われ、変数引数はタイプが pointer to CciChar (CciChar へのポインター) であると見なされます。

このリストの最後の引数は、(Ccichar*)0 でなければなりません

戻り値

なし。エラーが発生した場合、returnCode パラメーターがエラーの理由を示します。

void raiseExceptionWithBroker(CciChar* helpfulText,
                              char* file, /* which source file is broken */
                              int line,   /* line in above file */
                              char* func  /* function in above file */
                              ){
  int rc = CCI_SUCCESS;
  
  /* Set up the message catalog name */
  const char* catalog = "BIPv600";
  
  /* Convert the catalog name to wide characters. 
   * BIP_DEF_COMP_CCSID is UTF-8 on distributed and LATIN1 on z/OS 
   */
  int maxChars =  strlen(catalog)+1;
  CciChar* wCatalog =(CciChar*)malloc(maxChars*sizeof(CciChar));
  cciMbsToUcs(&rc, catalog, wCatalog, maxChars, BIP_DEF_COMP_CCSID);

  /* The above might have failed, but we are already throwing an exception,
   * so rc is now set to type success. */
  rc = CCI_SUCCESS;

  /* Throw the exception. The explanation will be added as the traceText and
   *  as an insert to the message 
   */
  cciThrowExceptionW(&rc,
                     CCI_FATAL_EXCEPTION,
                     file, line, func,
                     wCatalog, BIP2111,  
                     helpfulText,  
                     helpfulText,  
                     (CciChar*)0 
                     );     
  /* The above might have failed, but we are already throwing an exception,
   * so the value of rc is not important. */
}
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:41

as24560_