Skip to content

Commit d2d2758

Browse files
Update Javadoc for libcobj/exceptions (#804)
* doc: update Javadoc for libcobj/exceptions * doc: update Javadoc * doc: apply Claude review * doc: fix Javadoc for unused COB_EC_I_O_LINAGE
1 parent 0d8b584 commit d2d2758

5 files changed

Lines changed: 50 additions & 36 deletions

File tree

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionId.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ public class CobolExceptionId {
2626
/** この例外コードは使用されない */
2727
public static final int COB_EC_ALL = 1;
2828

29-
/** TODO: 準備中 */
29+
/** COBOL例外EC-ARGUMENTに対応する例外コード。引数に関するエラーのカテゴリを示す。 */
3030
public static final int COB_EC_ARGUMENT = 2;
3131

32-
/** TODO: 準備中 */
32+
/** COBOL例外EC-ARGUMENT-FUNCTIONに対応する例外コード。組み込み関数に不正な引数が渡された場合に使用される。 */
3333
public static final int COB_EC_ARGUMENT_FUNCTION = 3;
3434

3535
/** この例外コードは使用されない */
@@ -47,16 +47,16 @@ public class CobolExceptionId {
4747
/** この例外コードは使用されない */
4848
public static final int COB_EC_BOUND_OVERFLOW = 8;
4949

50-
/** TODO: 準備中 */
50+
/** COBOL例外EC-BOUND-PTRに対応する例外コード。ポインタの境界違反を示す。 */
5151
public static final int COB_EC_BOUND_PTR = 9;
5252

53-
/** TODO: 準備中 */
53+
/** COBOL例外EC-BOUND-REF-MODに対応する例外コード。参照変更のオフセットや長さが範囲外の場合に使用される。 */
5454
public static final int COB_EC_BOUND_REF_MOD = 10;
5555

5656
/** この例外コードは使用されない */
5757
public static final int COB_EC_BOUND_SET = 11;
5858

59-
/** TODO: 準備中 */
59+
/** COBOL例外EC-BOUND-SUBSCRIPTに対応する例外コード。配列の添え字が範囲外の場合に使用される。 */
6060
public static final int COB_EC_BOUND_SUBSCRIPT = 12;
6161

6262
/** この例外コードは使用されない */
@@ -116,46 +116,46 @@ public class CobolExceptionId {
116116
/** この例外コードは使用されない */
117117
public static final int COB_EC_FLOW_USE = 31;
118118

119-
/** TODO: 準備中 */
119+
/** COBOL例外EC-I-Oに対応する例外コード。ファイルI/O操作に関するエラーのカテゴリを示す。 */
120120
public static final int COB_EC_I_O = 32;
121121

122-
/** TODO: 準備中 */
122+
/** COBOL例外EC-I-O-AT-ENDに対応する例外コード。ファイルの終端に達した場合に使用される。 */
123123
public static final int COB_EC_I_O_AT_END = 33;
124124

125-
/** TODO: 準備中 */
125+
/** COBOL例外EC-I-O-EOPに対応する例外コード。ページの終端に達した場合に使用される。 */
126126
public static final int COB_EC_I_O_EOP = 34;
127127

128-
/** TODO: 準備中 */
128+
/** この例外コードは使用されない */
129129
public static final int COB_EC_I_O_EOP_OVERFLOW = 35;
130130

131-
/** TODO: 準備中 */
131+
/** COBOL例外EC-I-O-FILE-SHARINGに対応する例外コード。ファイル共有の競合が発生した場合に使用される。 */
132132
public static final int COB_EC_I_O_FILE_SHARING = 36;
133133

134-
/** TODO: 準備中 */
134+
/** COBOL例外EC-I-O-IMPに対応する例外コード。実装固有のI/Oエラーを示す。 */
135135
public static final int COB_EC_I_O_IMP = 37;
136136

137-
/** TODO: 準備中 */
137+
/** COBOL例外EC-I-O-INVALID-KEYに対応する例外コード。不正なキーによるファイルアクセスの場合に使用される。 */
138138
public static final int COB_EC_I_O_INVALID_KEY = 38;
139139

140-
/** TODO: 準備中 */
140+
/** この例外コードは使用されない */
141141
public static final int COB_EC_I_O_LINAGE = 39;
142142

143-
/** TODO: 準備中 */
143+
/** COBOL例外EC-I-O-LOGIC-ERRORに対応する例外コード。ファイル操作の論理エラーの場合に使用される。 */
144144
public static final int COB_EC_I_O_LOGIC_ERROR = 40;
145145

146-
/** TODO: 準備中 */
146+
/** COBOL例外EC-I-O-PERMANENT-ERRORに対応する例外コード。回復不能なI/Oエラーの場合に使用される。 */
147147
public static final int COB_EC_I_O_PERMANENT_ERROR = 41;
148148

149-
/** TODO: 準備中 */
149+
/** COBOL例外EC-I-O-RECORD-OPERATIONに対応する例外コード。レコード操作に関するエラーの場合に使用される。 */
150150
public static final int COB_EC_I_O_RECORD_OPERATION = 42;
151151

152-
/** TODO: 準備中 */
152+
/** COBOL例外EC-IMPに対応する例外コード。実装固有のエラーのカテゴリを示す。 */
153153
public static final int COB_EC_IMP = 43;
154154

155-
/** TODO: 準備中 */
155+
/** COBOL例外EC-IMP-ACCEPTに対応する例外コード。ACCEPT文で環境変数が見つからない場合などに使用される。 */
156156
public static final int COB_EC_IMP_ACCEPT = 44;
157157

158-
/** TODO: 準備中 */
158+
/** COBOL例外EC-IMP-DISPLAYに対応する例外コード。DISPLAY文で環境変数が未設定の場合などに使用される。 */
159159
public static final int COB_EC_IMP_DISPLAY = 45;
160160

161161
/** この例外コードは使用されない */
@@ -212,16 +212,16 @@ public class CobolExceptionId {
212212
/** この例外コードは使用されない */
213213
public static final int COB_EC_ORDER_NOT_SUPPORTED = 63;
214214

215-
/** TODO: 準備中 */
215+
/** COBOL例外EC-OVERFLOWに対応する例外コード。オーバーフローに関するエラーのカテゴリを示す。 */
216216
public static final int COB_EC_OVERFLOW = 64;
217217

218-
/** TODO: 準備中 */
218+
/** この例外コードは使用されない */
219219
public static final int COB_EC_OVERFLOW_IMP = 65;
220220

221-
/** TODO: 準備中 */
221+
/** COBOL例外EC-OVERFLOW-STRINGに対応する例外コード。STRING文でポインタが範囲外、またはデータが領域を超えた場合に使用される。 */
222222
public static final int COB_EC_OVERFLOW_STRING = 66;
223223

224-
/** TODO: 準備中 */
224+
/** COBOL例外EC-OVERFLOW-UNSTRINGに対応する例外コード。UNSTRING文でポインタが範囲外、またはデータが領域を超えた場合に使用される。 */
225225
public static final int COB_EC_OVERFLOW_UNSTRING = 67;
226226

227227
/** この例外コードは使用されない */
@@ -239,7 +239,7 @@ public class CobolExceptionId {
239239
/** この例外コードは使用されない */
240240
public static final int COB_EC_PROGRAM_IMP = 72;
241241

242-
/** TODO: 準備中 */
242+
/** COBOL例外EC-PROGRAM-NOT-FOUNDに対応する例外コード。CALL文で呼び出し先のプログラムが見つからない場合に使用される。 */
243243
public static final int COB_EC_PROGRAM_NOT_FOUND = 73;
244244

245245
/** この例外コードは使用されない */
@@ -269,7 +269,7 @@ public class CobolExceptionId {
269269
/** この例外コードは使用されない */
270270
public static final int COB_EC_RANGE_INDEX = 82;
271271

272-
/** TODO: 準備中 */
272+
/** COBOL例外EC-RANGE-INSPECT-SIZEに対応する例外コード。INSPECT文でオペランドのフィールドサイズが不正な場合に使用される。 */
273273
public static final int COB_EC_RANGE_INSPECT_SIZE = 83;
274274

275275
/** この例外コードは使用されない */
@@ -353,7 +353,7 @@ public class CobolExceptionId {
353353
/** この例外コードは使用されない */
354354
public static final int COB_EC_SIZE_IMP = 110;
355355

356-
/** TODO: 準備中 */
356+
/** COBOL例外EC-SIZE-OVERFLOWに対応する例外コード。数値演算の結果がフィールドの桁数を超えた場合に使用される。 */
357357
public static final int COB_EC_SIZE_OVERFLOW = 111;
358358

359359
/** この例外コードは使用されない */

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionInfo.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@
2020

2121
/** エラーコードを保持する。 */
2222
public class CobolExceptionInfo {
23-
/** エラーコード。TODO: 準備中 */
23+
/**
24+
* 現在のエラーコード。CobolExceptionTabCode.codeテーブルから取得した16進数のエラーコードが格納される。
25+
* CobolRuntimeExceptionとは異なりコンテキスト情報は保持せず、エラーコードのみを管理する。
26+
* 主にACCEPT文やDISPLAY文の実装固有エラーの判定に使用される。
27+
*/
2428
public static int code = 0;
2529

2630
/**
27-
* エラーコードを設定する。TODO: 準備中
31+
* エラーコードを設定する。指定された例外IDに対応するエラーコードをCobolExceptionTabCode.codeテーブルから取得し、codeフィールドに設定する。
2832
*
29-
* @param id TODO: 準備中
33+
* @param id CobolExceptionIdで定義された例外ID
3034
*/
3135
public static void setException(int id) {
3236
CobolExceptionInfo.code = CobolExceptionTabCode.code[id];

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionTabCode.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@
1818
*/
1919
package jp.osscons.opensourcecobol.libcobj.exceptions;
2020

21-
/** エラーコード関連の計算に用いる */
21+
/**
22+
* CobolExceptionIdで定義された例外IDから、COBOL標準の16進数エラーコードへの変換テーブルを保持するクラス。
23+
* codeテーブルのインデックスはCobolExceptionIdの定数値に対応し、値はCOBOL標準で規定された16進数のエラーコードである。
24+
*/
2225
public class CobolExceptionTabCode {
26+
/** CobolExceptionIdの例外IDをインデックスとし、対応する16進数のCOBOLエラーコードを格納する配列 */
2327
static int[] code = {
2428
0, 0xFFFF, 0x0100, 0x0101, 0x0102, 0x0200, 0x0201, 0x0202, 0x0203, 0x0204, 0x0205, 0x0206,
2529
0x0207, 0x0208, 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307, 0x0308,

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolRuntimeException.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@
2323

2424
/** 実行時エラーを示す例外。エラー番号とエラーメッセージを保持する */
2525
public class CobolRuntimeException extends RuntimeException {
26-
/** TODO: 準備中 */
26+
/**
27+
* 現在のエラーコード。16進数のエラーコードが格納される。
28+
* 通常はsetExceptionメソッドによりCobolExceptionTabCode.codeテーブルから設定されるが、
29+
* CobolFileやCobolLineSequentialFile等から直接代入される場合もある。
30+
* 主にファイルI/O操作や数値演算のエラー判定に使用される。
31+
*/
2732
public static int code;
2833

2934
private static int cobException = 0;
@@ -69,7 +74,7 @@ public void printStackTrace() {
6974
}
7075

7176
/**
72-
* 実行時例外を設定する。 エラーIDをベースに、CobolExceptioTabCode.codeテーブルを参照して、対応するエラーコードが設定される。
77+
* 実行時例外を設定する。 エラーIDをベースに、CobolExceptionTabCode.codeテーブルを参照して、対応するエラーコードが設定される。
7378
* また、エラー発生時のプログラムID、セクション名、パラグラフ名、行番号、ステートメントを取得し、このクラスの静的変数に保持する。
7479
*
7580
* @param id エラーID
@@ -104,9 +109,10 @@ public static int getExceptionCode() {
104109
}
105110

106111
/**
107-
* 常に0を返す。TODO: 必要に応じてこのメソッドは削除ないし修正する。
112+
* 例外が設定されたことがあるかどうかを返す。 setExceptionが一度でも呼ばれると1を返し、以降0に戻ることはない。
113+
* setException(0)を呼ぶとcodeは0にリセットされるが、cobExceptionは1のまま変わらない。
108114
*
109-
* @return 0
115+
* @return setExceptionが呼ばれたことがある場合は1、一度も呼ばれていない場合は0
110116
*/
111117
public static int getException() {
112118
return cobException;

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolStopRunException.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public int getReturnCode() {
5858
* CobolStopRunExceptionを例外としてスローする。 COBOLプログラム終了時のデフォルトの終了処理は実行されない。
5959
*
6060
* @param returnCode STOP RUNの返り値
61-
* @throws CobolStopRunException TODO: 準備中
61+
* @throws CobolStopRunException 常にスローされる
6262
*/
6363
public static void throwException(int returnCode) throws CobolStopRunException {
6464
throw new CobolStopRunException(returnCode);
@@ -68,7 +68,7 @@ public static void throwException(int returnCode) throws CobolStopRunException {
6868
* CobolStopRunExceptionを例外としてスローする。 COBOLプログラム終了時のデフォルトの終了処理は実行されない。
6969
*
7070
* @param storage STOP RUNの返り値
71-
* @throws CobolStopRunException TODO: 準備中
71+
* @throws CobolStopRunException 常にスローされる
7272
*/
7373
public static void throwException(CobolDataStorage storage) throws CobolStopRunException {
7474
throw new CobolStopRunException(storage);

0 commit comments

Comments
 (0)