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に示します。
項番 |
メソッド名 |
機能 |
---|---|---|
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 ユーザがキャッチできる例外」を参照してください。