ある言語で関数を呼び出すと、別の言語のプログラム・スタック・フレームが縮小してしまうような呼び出しは避けてください。
このガイドラインに該当する状況例を次に示します。
C/C++ の longjmp()、COBOL の STOP RUN、C/C++ の exit() または _exit() 呼び出しが使用できるのは、操作を開始する言語以外の言語で記述されたアクティブ・スタック・フレームが縮小されない場合に限られます。縮小や終了を開始しない言語の場合は、その他に次のような悪影響が生じる可能性があります。
一般に、スタック・フレームの実行中に発生した例外は、その例外を招いた言語の規則に従って処理されます。COBOL のインプリメンテーションで COBOL 言語セマンティクスをサポートする場合は、システム・サービスを介した例外の代行受信に依存しないため、TRAP(OFF) ランタイム・オプションを指定して、非 COBOL 言語の例外処理セマンティクスを有効にすることができます。
COBOL for Windows は、COBOL ランタイム環境の初期設定時の例外環境を保存し、COBOL 環境の終了時にはその例外環境を復元します。 COBOL では、インターフェース言語とツールが同じ規約に従うことを期待します。
関連参照
TRAP