COBOL2002 ユーザーズガイド


21.7.2 EXCEPTION-OBJECT

例外オブジェクトが引き起こされると,そのオブジェクト参照がEXCEPTION-OBJECTにセットされます。宣言手続き中でEXCEPTION-OBJECTを参照すると,引き起こされたオブジェクトへの参照を取得できます。

EXCEPTION-OBJECTの詳細については,マニュアル「COBOL2002 言語 標準仕様編」 「4.3.2(5) EXCEPTION-OBJECT」を参照してください。

EXCEPTION-OBJECTの規則
  • 例外オブジェクトが引き起こされていない場合,または例外名による例外が引き起こされた場合,EXCEPTION-OBJECTにはNULLがセットされます。

  • EXCEPTION-OBJECTは,値の参照およびクリアだけができます。値の代入はできません。

  • EXCEPTION-OBJECTは,外部属性を持つオブジェクト参照データ項目で,実行単位に一つだけ存在します。

使用例

EXCEPTION-OBJECTの使用例を,次に示します。

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE.
 
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
       CLASS EXCEPT-CLASS.
 
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 OBJ USAGE OBJECT REFERENCE EXCEPT-CLASS.
 
       PROCEDURE DIVISION.
       DECLARATIVES.
       EXCEPTION-HANDLER SECTION.
           USE AFTER EXCEPTION OBJECT EXCEPT-CLASS. *> 2.
           INVOKE EXCEPTION-OBJECT 'SAMPLEMETHOD'.
       END DECLARATIVES.
 
           INVOKE EXCEPT-CLASS 'NEW' RETURNING  OBJ.
           RAISE  OBJ. *> 1.
 
       END PROGRAM SAMPLE.
 
 
       IDENTIFICATION DIVISION.
       CLASS-ID. EXCEPT-CLASS INHERITS BASE.
 
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
       CLASS BASE.
       IDENTIFICATION DIVISION.
       OBJECT.
       
       IDENTIFICATION DIVISION.
 
       METHOD-ID. SAMPLEMETHOD.
       PROCEDURE DIVISION.
 
           DISPLAY 'EXCEPTION-OBJECTの使用例'.
 
       END METHOD SAMPLEMETHOD.
       END OBJECT.
       END CLASS EXCEPT-CLASS.
  1. プログラム「SAMPLE」中のRAISE文に,オブジェクト参照一意名が指定されているため,例外オブジェクトが引き起こされます。

  2. 例外宣言手続き内で,INVOKE文にEXCEPTION-OBJECTが指定されているため,例外オブジェクト(OBJ)を参照できます。SAMPLEMETHODが実行されます。