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) 例外コードの取得

[ 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けたのコード値です。

例外情報コードは,「付録E 例外情報コード一覧」の「表E‒2 JavaBean用エラー発生場所(メソッド)コード」と「表E‒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 ユーザがキャッチできる例外」を参照してください。