COBOL2002 ユーザーズガイド


18.2.1 取り消し対象のプログラム

実行中のプログラムを取り消すには,CANCEL文を使用します。

〈この項の構成〉

(1) 取り消しの対象に指定できるプログラム

CANCEL文で取り消しの対象に指定できるプログラムは,CANCEL文を実行したプログラムから呼び出せるプログラムだけです。

(例)

[図データ]

(2) 取り消しの実行順序

CANCEL文を実行したとき,CANCEL文に指定されたプログラム中に含まれるすべてのプログラムも取り消されます。このとき,プログラムが取り消される順番は,翻訳単位のプログラム中に現れた順序とは逆順に,含まれる各プログラムに対して正しいCANCEL文を実行した場合と同じです。

(例)

[図データ]

プログラムTEST01から「CANCEL 'A'.」を実行すると,プログラムAに含まれるすべての内側のプログラムに対してもCANCEL文が実行されたものとして扱われます。

(3) CANCEL文に指定できないプログラム

CANCEL文を実行する場合,すでにほかのプログラムから呼び出されていて,まだEXIT PROGRAM文が実行されていないプログラムを,直接または間接に参照してはいけません。このような実行中のプログラムを参照した場合,実行時エラーとなります。

(例)

[図データ]

プログラムCから,まだ実行中のプログラムBをCANCEL文で取り消そうとした場合,実行時エラーとなります。