キャッチコマンドリストは、4Dのコマンド呼び出しを捕捉し、デバッガウィンドウを表示するよう指示することが出来るランタイムエクスプローラのページです。
キャッチコマンドは、実行中の全てのプロセスで直ちに効果を発揮し、以降の指定したコマンド呼び出しが行われるとトレース(デバッガウィンドウを表示)に入ります。
ブレークポイントと異なり、特定のメソッドに限らず、全ての全てのプロセス、メソッドが対象となります。
キャッチコマンド(コマンド捕捉)は、任意の場所にブレークポイントを設定することなく、大きな範囲でトレースを行える便利な方法です。例えば、いくつかのプロセスを実行した後に、削除すべきでないレコードが削除されてしまった場合には、DELETE RECORDやDELETE SELECTIONといったコマンドの処理をキャッチ(捕捉)することにより、調査の範囲を狭めることができます。調査対象のコマンドが呼び出されるたびに、デバッガが起動されるので、問題のレコードが削除されてよいかどうかを調べ、コードの誤った箇所を突き止めることができます。
少し経験を積めば、ブレークポイントとコマンドの中断とを組み合わせて使用できるようになります。
キャッチコマンドページを開くには:
- 実行メニューからランタイムエクスプローラを選択する。
ランタイムエクスプローラは、フローティングパレットとして表示することができます。この場合、フローティングパレットにすると、常に前面に表示されます。これを行うにはShiftキーを押しながら、実行メニューからランタイムエクスプローラを選択します。詳細はDesign Referenceマニュアルを参照してください。

ランタイムエクスプローラウィンドウが表示されます。 - キャッチボタンをクリックすると、コマンドキャッチリストが表示されます:

このページは実行中にトレースに入るコマンドをリスト表示します。2つの欄から構成されています。
- 左の欄には、キャッチするコマンドの有効/無効状況と、コマンド名が表示されます。
- 右の欄には、コマンドに関連する条件(ある場合)が表示されます。
新しくコマンドを追加するには:
1. リスト下部にある新しいコマンドを追加ボタン(+)をクリックします。ALERTコマンドをデフォルトとして新しいエントリが追加されます。

次にALERTラベルをクリックし、キャッチしたいコマンドの名前を入力します。入力したら、EnterまたはReturnキーを押して選択を確定させます。
キャッチコマンドを無効、あるいは有効にするには:
- コマンドラベルの前にあるブレット(*)をクリックします。
これによりブレークポイントの有効/無効を切り替える事ができます。ブレットの色の意味は以下の通りです:
注: キャッチしたコマンドを無効化する事は、削除するのとほぼ同等の効果があります。実行中、デバッガはほぼ全くと言っていいほどエントリーに時間を使いません。エントリーを無効化することの利点は、それが再び必要になったとき一から作り直さなくて良いという点です。
キャッチコマンドに条件を設定するには:
- エントリの右の欄をクリックする。
すると入力カーソルが表示されます。 - ブール値を返す4Dフォーミュラ(式、またはコマンド呼び出しやプロジェクトメソッド)を入力する。
注: 条件を削除するにはフォーミュラを削除します。
条件を設定する事により、条件が満たされていた場合、コマンドの呼び出されたときに実行を中止する事ができます。例えば、DELETE SELECTIONコマンドのブレークポイントに"Records in selection([Emp]>10)"という条件を設定した場合、[Emp]テーブルのカレントセレクションに9レコード以下(あるいは未満)であったときにはDELETE SELECTIONコマンドの実行時にコードは停止されません。
キャッチしたコマンドに条件を追加していくほど実行速度は遅くなって行きます。これは例外が起こるたびにそれぞれの条件が評価されなければならないからです。その一方で、条件を追加するとデバッグプロセスは早くなります。条件に合致しないオカレンスを、4Dは自動的にスキップしていくからです。