・Rules(ルール)セクションにてError_Handler(エラーハンドラー)ルールを定義します。これにより、エラーつまりSQLExceptionが発生した時に、呼び出されるサブルーチンを定義できます。
Error_Handler('サブルーチン名');
・Source(ソース:プロシージャ)又はEvents(イベント:トランザクション/Webパネル)セクションにて、エラーハンドリング用のサブルーチンを定義します。
Sub 'サブルーチン名'
//エラー処理を記述
Endsub
エラーハンドル用サブルーチンでは、システム予約された変数を参照する事により、エラーの内容を取得する事ができます。以下の変数はVariablesセクションで変数宣言する必要はありません。直接コード内で記述可能です。
変数名 | データ型 | 説明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
&Err | Numeric(4) | GeneXusの標準エラーコード又は999がセットされます
|
変数名 | データ型 | 説明 |
---|---|---|
&gxDBErr | Numeric(5) | DBMSのエラーコードが設定されます。設定されるのは&Errが500よりも大きい場合です。それ以外の場合は未定義です。 |
&gxDBTxt | Character(255) | DBMSのエラーメッセージが設定されます。設定されるのは&Errが500よりも大きい場合です。それ以外の場合は未定義です。 |
&gxOper | Character(30) | エラーが発生した時の操作が設定されます。設定される値は : Declare Fetch Insert Update Delete |
&gxErrTbl | Character(30) | エラーが発生した時にアクセスしていたテーブル名(もしあれば)が設定されます。テーブルにアクセスする操作時でない場合(データベースの作成やリモートプロシージャコールなど)は'N/A'が設定されます。 |
&gxErrOpt | Numeric(1) | error_handlerのリターンコードとして使用されます。この変数に設定された値により、error_hander後の挙動が変わります。 0 = 処理を続行します。(エラーは無視されます) 1 = 処理を再実行します。 2 = アプリケーションの実行を中止します。 3 = GeneXusの既定の処理を実行します。 |
0 件のコメント:
コメントを投稿