システムの処理
重大度コードがEの場合、処理を続行します。
重大度コードがWの場合、変換に成功した文字までを設定し、処理を続行します。
重大度コードがUの場合、プログラムを異常終了させます。
プログラマーの処置
COBOLプログラム中で、データ項目のエンコード方式で文字として保証されている範囲外のデータが使用されました。
$1に設定されたエラーコードをシステムのerrnoの説明を参考にエラーの原因を取り除いて、再度実行してください。
[Linux64]シフトJISを扱うアプリケーションを実行した場合は、以下を確認してください。
入力した資源(ファイル)のコード系は正しいか
参照
“NetCOBOL ユーザーズガイド”の“6.2.4 資源”
シフトJISの文字範囲を超えたデータをACCEPT文で入力していないか
定量制限を超えたデータをACCEPT文で入力していないか
$2にはエラーアドレスが設定されます。
エラーコード | エラーの意味 | プログラマーの処置 |
---|---|---|
E2BIG 7(0x7) | 変換先コード列格納域が不足しました。 | 変換先のデータ項目の長さが十分であるか確認してください。 |
ENOMEM 12(0xc) | 領域不足が発生しました。 | “付録B 注意事項”の“COBOLプログラムの実行時に仮想メモリ不足が発生する場合”を参照して対処してください。 |
EINVAL 22(0x16) | 変換元コード列の終りに、不完全なコードが現れました。 | 変換元のデータ項目に格納された文字データが転記、部分参照などで不完全な状態になっていないか確認してください。 |
[Solaris][Solaris64] EILSEQ 88(0x58) [Linux][LinuxIPF][Linux64] EILSEQ 84(0x54) | 変換元コード列中に、変換元コード系に存在しないコードが現れました。 | 変換元のデータ項目に格納されたデータがエンコード方式の範囲外です。エンコード方式の異なるデータ項目を重ね合わせ(REDEFINES句)で使用していないか、文字コード以外のバイナリデータを格納していないか確認してください。 |
コード変換にInterstage Charset Managerを使用している場合は、「Interstage Charset Manager 使用手引書 標準コード変換機能編」を参照してエラーの原因を確認してください。
上記以外のエラーコードについては、システムのエラーコードを参照してください。
参照
[Linux64]
“NetCOBOL ユーザーズガイド”の“A.2.8 CONVCHAR”
[Linux64]
“NetCOBOL ユーザーズガイド”の“C.1.13 CBR_CONVERT_CHARACTER”