EXIT 文

EXIT 文は、一連の手続きに共通の終了点を提供する。

MF EXIT 文は、文内 PERFORM、段落、または節の出口としても機能する。

EXIT PROGRAM 文は、呼び出される側のプログラムの論理的終了を示す。

MF 任意の言語で書かれた活性化する側の実行時要素に、値を返すこともできる。

ISO2002MF EXIT METHOD 文は、起動されたメソッドの論理的終了を示す。

ISO2002 EXIT FUNCTION 文は、関数の実行の論理的終了を示す。

書き方 1 の一般形式


*

MF 

書き方 2 の一般形式


*

ISO2002MF 

書き方 3 の一般形式


*

書き方 4 の一般形式


*

ISO2002MF 

書き方 5 の一般形式


*

ISO2002 

書き方 6 の一般形式


*

NETJVM 

書き方 7 の一般形式

書き方 1 の構文規則

  1. EXIT 文は、単体で完結文を構成する必要がある。

    VSC2MF この規則は必須ではない。

  2. EXIT 文は、段落内で唯一の完結文とする。

    VSC2MF この規則は必須ではない。

MF 

書き方 2 の構文規則

  1. MF 書き方 2 の EXIT 文は、文内 PERFORM 内でのみ使用できる。

書き方 4 の構文規則

  1. 完結文内の一連の無条件文内で EXIT PROGRAM 文を指定する場合、これをその最後の文とする。

    VSC2MF この規則は必須ではない。

  2. EXIT PROGRAM 文を含める段落には、それ以外の完結文は含めない。

    ANS85 この規則は必須ではない。

  3. MF integer-1 は符号付きでもよい。
  4. MF GIVING および RETURNING は同等である。
  5. MF identifier-1 のサイズは 8 バイト以下とする。
ISO2002MF 

書き方 5 の構文規則

  1. ISO2002MF EXIT METHOD 文を指定できるのは、メソッドの手続き部内のみである。
ISO2002 

書き方 6 の構文規則

  1. ISO2002 EXIT FUNCTION 文を指定するのは、関数の手続き部内のみとする。

書き方 4、5、および 6 の構文規則

  1. 関連付けられた USE 文で GLOBAL が指定されている宣言手続き内で EXIT 文を指定することはできない。
NETJVM 

書き方 7 の構文規則

  1. NETJVM STOP ITERATOR は反復子の文脈でのみ指定できる。「反復子名」を参照。

書き方 1 の一般規則

  1. EXIT 文は、手続き部内の特定の箇所に手続き名を割り当てるためにのみ使用する。この書き方の EXIT 文には、翻訳および実行に関して、それ以外の働きはない。
MF 

書き方 2 の一般規則

  1. MF CYCLE を指定せずに EXIT PERFORM 文を実行すると、最も近い文内 PERFORM 文に関連付けられた END-PERFORM の直後にある暗黙の CONTINUE 文に制御が移る。
  2. MF CYCLE を指定して EXIT PERFORM 文を実行すると、最も近い文内 PERFORM 文に関連付けられた END-PERFORM の直前にある暗黙の CONTINUE 文に制御が移る。
MF 

書き方 3 の一般規則

  1. MF PARAGRAPH を指定して書き方 3 の EXIT 文を実行すると、段落の最後の文の直前にある暗黙の CONTINUE 文に制御が移る。
  2. MF EXIT SECTION 文を実行すると、現在の節の最終段落の直後にある未指定の空の段落に制御が移る。これは節のいずれの戻りメカニズムにも先行する。

書き方 4 の一般規則

  1. ANS85 呼び出す側の実行時要素の制御下にないプログラム内で EXIT PROGRAM 文を実行すると、次の実行可能な文に制御が移り、処理が続行される。
  2. ANS85 初期属性を持たない呼び出される側のプログラム内で EXIT PROGRAM 文を実行すると、呼び出す側の実行時要素内の CALL 文に続く次の実行可能な文に制御が移り、処理が続行される。呼び出す側の実行時要素の状態は CALL 文を実行した時点と同じである。ただし、呼び出す側の実行時要素および呼び出される側の実行時要素の間で共有されるデータ項目およびデータ ファイルの内容は変更されている可能性がある。呼び出される側のプログラムの状態も変更されない。ただし、呼び出される側のプログラムが実行したすべての PERFORM 文は、その範囲の末尾に達したものと見なされる。
  3. ANS85 初期属性を持つ呼び出される側のプログラム内で EXIT PROGRAM を実行することは、一般規則 7 で指定したアクションに加えて、そのプログラムを参照する CANCEL 文を実行することに等しい。ただし、メモリは解放されない。「手続き部 - ACCEPT - DIVIDE」の章の「CANCEL 文」トピックを参照。
  4. ANS85 GLOBAL を指定した宣言手続きの実行中に、EXIT PROGRAM 文は実行できない。ただし、その宣言手続きの実行中に呼び出されたプログラム内では、EXIT PROGRAM 文を実行できる。
  5. MF 呼び出す側の実行時要素の制御下にあるプログラム内の EXIT PROGRAM 文を実行すると、システム領域に返却値が設定される。このシステム領域は一般に COBOL 以外のプログラムが値を返すために利用できる。そのサイズは 4 バイトを下回ることはなく、環境によってはそれよりも大きいことがある。

    GIVING を指定せず、呼び出し規則で RETURN-CODE 特殊レジスタ (「特殊名段落」トピックの CALL-CONVENTION 句の規則を参照) を更新するように指定した場合、オブジェクト プログラムの動作は次のようになる。つまり、システム領域が COBOL の数値データ項目であり、それに USAGE COPM-5 を指定して、サイズを COBOL システム外の操作環境が決定するものとして宣言されている状態で、RETURN-CODE を送信側項目とし、システム領域を受信側項目として MOVE 文を実行した場合と同様に動作する。RETURN-CODE の詳細については、「COBOL 言語の概念」の章の「特殊レジスタ」トピックを参照。

    GIVING ADDRESS OF を指定した場合、オブジェクト プログラムの動作は次のようになる。つまり、システム領域が USAGE POINTER を指定した COBOL データ項目として宣言され、「TO ADDRESS OF identifier-2」を最初の作用対象とし、システム領域を 2 番目の作用対象として SET 文を実行した場合と同様に動作する。ADDRESS OF 指定は、システム領域よりも大きな値を間接的に渡すために使用できる。

    「GIVING identifier-1」を指定した場合、identifier-1 にはシステム領域に返却値を保持するために必要な文字位置と同数の文字位置を記述し、その型および用途は呼び出す側の実行時要素が予期するものとする。オブジェクト プログラムの動作は、identifier-1 を送信側項目とし、システム領域を受信側項目として、MOVE 文を実行した場合と同様である。

    「GIVING integer-1」を指定した場合、integer-1 の値はシステム領域に保持できる値以下とする。オブジェクト プログラムの動作は次のようになる。つまり、システム領域が COBOL の数値データ項目であり、それに USAGE COPM-5 を指定して、サイズを COBOL システム外の操作環境が決定するものとして宣言されている状態で、integer-1 を送信側項目とし、システム領域を受信側項目として MOVE 文を実行した場合と同様に動作する。

    手続き型 COBOL コードをマネージ COBOL に翻訳する際に、手続き部の見出しに RETURNING 指定がない場合、コンパイラは RTNCODE-SIZE 指令の設定に応じて 32 または 64 ビットの整数を返すメソッドを生成する。EXIT PROGRAM RETURNING identifier-1 形式の文は、呼び出す側のプログラムに値を返す前に、identier-1 を MOVE 文の規則に従って正しい整数型に変換しようと試みる。

ISO2002MF 

書き方 5 の一般規則

  1. ISO2002MF EXIT METHOD 文を実行すると、実行中のメソッドが停止し、呼び出し元の文に制御が戻る。包含元のメソッド定義に RETURNING 指定があると、RETRUNING 指定が参照するデータ項目中の値がそのメソッド呼び出しの結果となる。
ISO2002 

書き方 6 の一般規則

  1. ISO2002 EXIT FUNCTION を実行すると、実行中の関数が停止し、活性化する側の文に制御が戻る。包含元の関数定義の RETURNING 指定が参照するデータ項目の値が、関数の起動結果となる。