程式狀態碼
放置在子欄位位置 *STATUS 中大於 99 的任何代碼都視為異常/錯誤狀況。 當狀態碼大於 99; 錯誤指示器 (如果在位置 73 及 74 中指定) 設為開啟,或 %ERROR 內建函數 (如果指定 'E' 擴充元) 設為傳回' 1 ' , 或控制會傳遞至 MONITOR 區塊內適當的 ON-ERROR 群組; 否則,程式異常狀況/錯誤子常式會接收控制。 當發生異常/錯誤時,會更新位置 *STATUS。
%STATUS 內建函數會傳回針對程式或檔案狀態所設定的最新值。
下列程式碼放置在程式狀態資料結構的子欄位位置 *STATUS 中:
一般代碼
- 代碼
- 條件
- 00000
- 未發生異常狀況/錯誤
- 00001
- 被呼叫的程式傳回 LR 指示器開啟。
- 00050
- 轉換導致替代。
異常狀況/錯誤碼
- 代碼
- 條件
- 00100
- 字串作業的值超出範圍
- 00101
- 負平方根
- 00102
- 除以零
- 00103
- 中間結果不夠大,無法包含結果。
- 00104
- 浮動下溢。 中間值太小,無法包含在中間結果欄位中。
- 00105
- 字元至數值轉換函數中的字元無效。
- 00112
- 「日期」、「時間」或「時間戳記」值無效。
- 00113
- 日期溢位或下溢。 (例如,當「日期」計算結果產生大於 *HIVAL 或小於 *LOVAL 的數字時。)
- 00114
- 日期對映錯誤,其中「日期」從 4 個字元的年份對映至 2 個字元的年份,且日期範圍不是 1940-2039。
- 00115
- 可變長度欄位具有無效的現行長度。
- 00120
- 表格或陣列順序錯誤。
- 00121
- 陣列索引無效
- 00122
- 發生超出範圍
- 00123
- 在程式的起始設定步驟期間嘗試重設
- 00124
- 可變維度陣列的元素數目無效
- 00125
- 字串運算元無效。
- 00126
- 傳送訊息時發生錯誤。
- 00202
- 被呼叫的程式或程序失敗; 停止指示器 (H1 到 H9) 未開啟
- 00211
- 呼叫程式或程序時發生錯誤
- 00222
- 指標或參數錯誤
- 00231
- 傳回已呼叫的程式或程序,並開啟中止指示器
- 00232
- 此程式中的停止指示器開啟
- 00233
- 執行 RETURN 作業時開啟中止指示器
- 00299
- RPG IV 格式化傾出失敗
- 00301
- 找不到方法呼叫的類別或方法,或方法呼叫中發生錯誤。
- 00302
- 將 Java™ 陣列轉換成項目上的 RPG 參數至 Java 原生方法時發生錯誤。
- 00303
- 從 RPG 原生方法結束時,將 RPG 參數轉換成 Java 陣列時發生錯誤。
- 00304
- 在準備 Java 方法呼叫時,將 RPG 參數轉換成 Java 陣列時發生錯誤。
- 00305
- 將 Java 陣列轉換成 RPG 參數或在 Java 方法之後傳回值時發生錯誤。
- 00306
- 將 RPG 回覆值轉換成 Java 陣列時發生錯誤。
- 00333
- DSPLY 作業發生錯誤
- 00351
- 剖析 XML 文件時發生錯誤
- 00352
- %XML 的選項無效
- 00353
- XML 文件不符合 RPG 變數
- 00354
- 準備 XML 剖析時發生錯誤
- 00355
- 程式或程序無法用於 DATA-GEN 或 DATA-INTO 作業
- 00356
- DATA-INTO 作業的文件不符合 RPG 變數
- 00356
- DATA-INTO 作業的文件不符合 RPG 變數
- 00357
- DATA-INTO 作業的剖析器偵測到錯誤
- 00358
- 剖析器提供給 DATA-INTO 作業的資訊發生錯誤
- 00359
- 執行 DATA-INTO 或 DATA-GEN 作業的程式或程序時發生錯誤
- 00361
- 為 DATA-GEN 的產生器準備 RPG 變數中的資料時發生錯誤
- 00362
- 產生器為 DATA-GEN 作業提供的資訊發生錯誤
- 00363
- DATA-GEN 作業的產生器偵測到錯誤
- 00364
- 處理 DATA-GEN 作業的輸出檔或輸出變數時發生錯誤
- 00365
- DATA-GEN 作業序列發生錯誤
- 00401
- 找不到在 IN/OUT 上指定的資料區
- 00402
- *PDA 對非預先啟動工作無效
- 00411
- 資料區類型或長度不符合
- 00412
- 未鎖定資料區以供輸出
- 00413
- 輸入/輸出作業發生錯誤
- 00414
- 使用者未獲授權使用資料區
- 00415
- 使用者未獲授權變更資料區
- 00421
- UNLOCK 作業發生錯誤
- 00425
- 儲存體配置所要求的長度超出範圍
- 00426
- 儲存體管理作業期間發現錯誤
- 00431
- 先前被另一個程式鎖定的資料區
- 00432
- 在相同處理程序中被程式鎖定的資料區
- 00450
- 字元欄位未完全以移出及移入字元括住
- 00451
- 不支援兩個 CCSID 之間的轉換
- 00452
- 部分字元無法在兩個 CCSID 之間轉換
- 00453
- 在兩個 CCSID 之間轉換期間發生錯誤
- 00501
- 無法擷取排序順序。
- 00502
- 無法轉換排序順序。
- 00802
- 確定控制不在作用中。
- 00803
- 回轉作業失敗。
- 00804
- COMMIT 作業發生錯誤
- 00805
- ROLBK 作業發生錯誤
- 00907
- 十進位資料錯誤 (數字或符號無效)
- 00970
- 用來產生程式的編譯器層次號碼與 RPG IV 執行時期子常式的層次號碼不一致。
- 09998
- ILE RPG 編譯器或執行時期子常式中的內部失敗
- 09999
- 程序收到異常狀況訊息。