エラーレベルは、Data Effectorの各APIの処理中に起きた事象に対して、Data Effectorを利用しているプログラムが、その対処方法を決定するときの基準となる値です。各APIを実行後にエラーレベル取得用のAsisGetErrorLevel関数を実行することで取得できます。
参照
エラーレベル取得用のAPIの詳細については、“C.5.3 AsisGetErrorLevel”を参照してください。
エラーレベルは5つあります。
各エラーレベルの値は、関数用のヘッダファイル(libAsis.h)において、以下のように定義されます。
エラーレベル | ヘッダファイルにおける定義 |
---|---|
ASIS_EL_INFORMATION | |
ASIS_EL_WARNING | |
ASIS_EL_ERR_PARAMETER | |
ASIS_EL_ERR_DATA | |
ASIS_EL_ERR_ENVIRONMENT |
以下にそれぞれのエラーレベルについて説明します。
処理が正常に終了したなど、情報レベルの事象に対応するエラーレベルです。
処理は継続するが、通知するべき内容である警告レベルの事象に対応するエラーレベルです。
例として以下の事象があります。
ログファイルの指定に誤りがあった
連結関数、集計関数またはソート関数の数値演算でオーバーフローが発生した
連結関数、集計関数またはソート関数の数値演算でゼロ除算しようとした
APIに指定したパラメタに誤りがある、またはAPIの使用方法そのものに誤りがあるなどの理由で、処理が継続できない事象に対応するエラーレベルです。
例として以下の事象があります。
APIの引数に誤りがある
APIの引数に指定した値が誤っている
APIの引数に指定した式の文法が誤っている
APIの引数に指定した文字列の長さが上限を超えている
指定したファイル名に誤りがある
指定した入力ファイルが存在しない
指定した入力ファイルをオープンすることができない
パラメタ間に不整合がある
入力形式がXMLの場合にスキーマ情報ファイルを指定した
入力ファイルと出力ファイルに同じファイル名が指定された
ハンドルに誤りがある
ハンドルが初期化されていない
異なる機能のハンドルが指定された
APIの呼出し順序に誤りがある
AsisInitReplace関数を実行する前にAsisExecuteReplace関数を実行した
入力ファイルや入力ジャーナルファイルとして指定されたファイルの内容または標準入力から読み込んだ内容に誤りがあり、処理が継続できない事象に対応するエラーレベルです。
例として以下の事象があります。
ファイルに制御コードが存在する
ファイルにCSV/XML形式としての構文エラーが存在する
引用符の対応が合わない
開始タグに対応する終了タグが存在しない
CSV形式のファイルで見出し行とデータ行のカラム数が異なる
スキーマ情報ファイルに誤りがある
CSV形式のスキーマ情報ファイルとデータファイルのカラム数が異なる
定量制限
CSV/XMLの1レコードのサイズが32メガバイトより大きい
処理を実行した環境に起因するエラーによって処理が継続できない事象に対応するエラーレベルです。
例として以下の事象があります。
メモリ不足
ファイルシステムのI/Oエラー
ファイルシステムの空き容量不足
システムコールのエラー
Data Effectorの各APIの処理中に起きた事象について、エラーレベルごとにどのように対処するかについて説明します。
注意
対処方法は、Data Effectorを利用するプログラムの目的によって異なります。ここでは一般に想定される対処方法について記述します。
情報レベルの事象です。継続して処理が可能です。
継続して処理が可能な事象であるため、問題がないと判断した場合は無視して、次の処理を続行できます。
厳密な結果を求める場合、警告とされた事象が発生しないようにデータの内容やパラメタとして指定する値または条件を見直す必要があります。
APIに指定したパラメタの値や、APIの使用方法に誤りがあるため、プログラムを修正する必要があります。
パラメタの値をプログラムの外部から取得している場合などは、その値を見直す必要があります。
指定されたファイルの内容に誤りがあるため、ファイルの内容を修正する必要があります。
多数のファイルに対して順次処理を行う場合は、エラーが発生したファイルに対する処理を行わず、次のファイルの処理を行うことができます。
また、APIに指定したファイル名が誤っている場合や、入力ファイルタイプを間違って指定した場合などはこのエラーレベルに分類される場合があります。
一般にプログラムでは対処できない事象です。プログラムが動作するシステムのハードウェア、オペレーティングシステムなどの設定を見直す必要があります。