COBOL2002 Cosminexus連携機能ガイド

[目次][用語][索引][前へ][次へ]

8.4.1 ユーザインタフェースAPI

Exceptionクラスについて説明します。

COBOLアクセスをEnterprise Beanとして使用する場合のエラーは,Exceptionクラスで取得してください。エラー情報を取得する場合,ExceptionクラスのメソッドgetMessage()に例外情報の文字列を返します。

COBOLアクセスでは,エラー情報を解析するためのクラス(J2CBErrorUtil)を用意しています。J2CBErrorUtilクラスのメソッドを使用して,COBOLで発生したエラー情報などを取得します。

プログラム中からこれらのメソッドを使用し,取得したい例外情報を参照できます。

[ J2CBErrorUtilクラス ]
 
public class J2CBErrorUtil implements java.io.Serializable
 
機能:エラー情報の解析
コンストラクタの詳細:public J2CBErrorUtil (String s)
パラメタ:s−例外情報の文字列

J2CBErrorUtilクラスを記述したServletの例を次に示します。

 
  try {
    remoteobj=homeobj.create();
  } catch (Exception e) {
    J2CBErrorUtil wkobj=new J2CBErrorUtil(e.getMessage());
    out.println("Create時エラー発生 :");
    out.println("<p>getEJBCblErrorCode=" + wkobj.getEJBCblErrorCode() + "</p>");
    out.println("<p>getEJBCblMessageID=" + wkobj.getEJBCblMessageID() + "</p>");
    out.println("<p>getEJBDetailMessage=" + wkobj.getEJBDetailMessage() + "</p>");
    out.println("<p>getEJBErrorCode=" + wkobj.getEJBErrorCode() + "</p>");
    out.println("<p>getEJBMessage=" + wkobj.getEJBMessage() + "</p>");
    out.println("<p>getEJBName=" + wkobj.getEJBName() + "</p>");
    e.printStackTrace();
    return;
  }
 

J2CBErrorUtilクラスで提供するメソッドの一覧を表8-6に示します。

表8-6 J2CBErrorUtilクラスの提供メソッド一覧

項番 メソッド名 機能
1 getEJBCblErrorCode COBOL UAPの呼び出しで発生した例外コードを取得する。
2 getEJBCblMessageID 該当するCOBOL実行時エラーメッセージIDを取得する。
3 getEJBDetailMessage COBOL実行時エラーメッセージIDに対応するメッセージを取得する。
4 getEJBErrorCode COBOLアクセスで発生した例外情報コードを取得する。
5 getEJBMessage COBOLアクセスで発生した例外情報コードに対するメッセージ文字列を取得する。
6 getEJBName COBOLアクセスで発生した例外名を取得する。

J2CBErrorUtilクラスのメソッドについて説明します。

<この項の構成>
(1) 例外コードの取得
(2) 実行時エラーメッセージID取得
(3) 該当エラーメッセージの取得
(4) COBOLアクセスの例外情報コードの取得
(5) COBOLアクセスのメッセージ取得
(6) 例外名の取得

(1) 例外コードの取得

[ getEJBCblErrorCode メソッド ]
 
public java.lang.String getEJBCblErrorCode()
 
戻り値:null/x00002135(8501)/そのほかのコード(例外種別コード)
null:COBOLアクセスで異常終了した。
x00002135(8501):実行時デバッグ機能オプション※1またはテストデバッグ機能オプション※2を指定したCOBOL UAPで異常終了した場合,またはCOBOL実行時エラーが発生して異常終了した場合,当コードを返します。getCblMessageID メソッドなどからエラー情報を取得して原因を調査してください。
そのほかのコード:実行時デバッグ機能オプション※1またはテストデバッグ機能オプション※2の指定がないCOBOL UAPで例外が発生した場合,システムの例外種別コード値を返します。
 
注※1 実行時デバッグ機能オプション
  • -DebugInf
  • -DebugInf,Trace
  • -DebugCompati
  • -DebugData
  • -DebugRange
注※2 テストデバッグ機能オプション
  • -TDInf
  • -CVInf

(2) 実行時エラーメッセージID取得

[ getEJBCblMessageID メソッド ]
 
public java.lang.String getEJBCblMessageID()
 
戻り値:KCCCのプリフィクスなしの番号の文字列
null:情報なし

(3) 該当エラーメッセージの取得

[ getEJBDetailMessage メソッド ]
 
public java.lang.String getEJBDetailMessage()
 
戻り値:該当するCOBOL実行時エラーメッセージ
環境変数CBL_SYSERRで指定したファイルに出力された実行時エラーメッセージの中から,該当する例外オブジェクトに格納されたCOBOL実行時エラーメッセージIDに対応するメッセージを取得します。
null:情報なし

(4) COBOLアクセスの例外情報コードの取得

[ getEJBErrorCode メソッド ]
 
public java.lang.String getEJBErrorCode()
 
戻り値:例外情報コード
COBOLアクセスで発生した例外情報コードを取得します。
例外情報コードは,先頭に”J2CB”が付加された11けたのコード値です。
例外情報コードは,「付録F 例外情報コード一覧」の「表F-2 JavaBean用エラー発生場所(メソッド)コード」と「表F-3 EJB用エラー発生場所(メソッド)コード」を参考にしてください。
また,COBOLアクセス以外で発生した例外情報コードは,先頭に"ETC:"が付加されます。
null:情報なし

(5) COBOLアクセスのメッセージ取得

[ getEJBMessage メソッド ]
 
public java.lang.String getEJBMessage()
 
戻り値:メッセージ文字列
COBOLアクセスで発生したエラー発生場所(メソッド)とエラー要因をメッセージ文字列で返します。
null:情報なし
オーバーライド:クラス java.lang.Throwable 内のgetMessage

(6) 例外名の取得

[ getEJBName メソッド ]
 
public java.lang.String getEJBName()
 
戻り値:発生した例外名を返す。
null:情報なし
詳細は「表8-7 ユーザがキャッチできる例外」を参照してください。