サブプロシージャーからの戻り

RETURN 命令が正常に実行された時、あるいはプロシージャーの最後の ステートメント (RETURN 命令ではない) が処理された時には、サブプロシージャーは 正常に戻ります。しかし、 呼び出しスタックからのサブプロシージャーの除去以外には、 プログラムのメイン・プロシージャーが終了するまで、終了処置は実行されません。 言い換えると、メイン・プロシージャーの正常終了時に実行される項目としてリストされているすべての処置は、 メイン・プロシージャーの場合に のみ 実行されます。

処理できない例外が起こった場合には、サブプロシージャーが異常終了し、 制御権は呼び出し元プロシージャーに戻されます。ここでも、メイン・プロシージャーが 終了するまでこれ以上の処理は起こりません。

メイン・プロシージャーがまったく呼び出されない (したがって、 終了できない) 場合には、ファイルや、データ域などはクローズされません。ある サブプロシージャーでこれが起こるかもしれないと考えられる場合に は、サブプロシージャーの終了時に呼び出す終了プロシージャーを コーディングする必要があります。このことは、そのサブプロシージャーが制御仕様書に NOMAIN の指定された モジュール内にある場合に特に言えます。