プログラムがランタイム診断メッセージを伴わずに異常終了した場合は、その障害を引き起こしたエラーがメッセージの表示も妨げた可能性があります。このように動作した場合、以下の原因が考えられます。
dcl array(10);
.
.
.
do I = 1 to 100;
array(I) = value;
このタイプのエラーをコンパイル・モジュールで検出するには、SUBSCRIPTRANGE 条件を使用可能にします。宣言された添え字値の範囲を超えるエレメントにアクセスしようとするたびに、SUBSCRIPTRANGE 条件が発生します。この条件の ON ユニットがない場合は、診断メッセージが印刷され、ERROR 条件が発生します。
この方法は、実行時間やストレージ・スペースの面でコストがかかりますが、プログラム・テストの援助機能として有益です。エラー処理の詳細については、デバッグでのエラーおよび条件処理の使用を参照してください。
あるプログラムで作成され、データ・セットに送信されたロケーター値を、後に検索して別のプログラムで使用する場合は、そのロケーター値が、2 番目のプログラムで使用する上で妥当であることを確認してください。
dcl a static,b based (p); allocate b; p = addr(a); free b;
dcl x char(3); i = 3 substr(x,2,i) = 'ABC';このタイプのエラーをコンパイル・モジュールで検出するには、STRINGRANGE 条件を使用します (詳しくは、テストおよびデバッグで使用される条件を参照)。