5.8.10 ジョブ実行中にエラーが発生した場合の動作
ジョブ実行中にエラーが発生した場合の,後続のコマンド・制御文の動作について説明します。発生するエラーの種類を次に示します。
-
スクリプト拡張コマンドのエラー
#-adsh_fileコマンドでファイル割り当てに失敗したときなどで発生します。
-
シェル標準コマンドのエラー
-
続行できる場合
指定したコマンド名が見つからないとき,正規組み込みコマンドがエラーになったときなどで発生します。
-
続行できない場合
特殊組み込みコマンドのエラーなどで発生します。
-
- 〈この項の構成〉
(1) ジョブステップ外でエラーが発生した場合
ジョブステップ外でエラーが発生した場合の動作を次の表に示します。
発生したエラーの種類 |
後続のコマンド・制御文の動作 |
---|---|
スクリプト拡張コマンドのエラー |
|
シェル標準コマンドのエラー(続行できる場合) |
|
シェル標準コマンドのエラー(続行できない場合) |
ジョブ定義スクリプトの実行を終了します。 |
ジョブステップ外でエラーが発生した場合の例を次に示します。
ジョブ定義スクリプトのコーディング例 |
スクリプト拡張コマンドのエラー |
シェル標準コマンドのエラー |
|
---|---|---|---|
続行できる場合 |
続行できない場合 |
||
#-adsh_file JOBFILE jobfile |
× |
− |
− |
cmdA |
△ |
× |
− |
shift $n |
△ |
○ |
× |
cmdB |
△ |
○ |
△ |
− |
− |
− |
|
#-adsh_step_start NO -run normal |
△ |
△ |
△ |
echo "run normal step" |
△ |
△ |
△ |
cmdNormal |
△ |
△ |
△ |
#-adsh_step_end |
△ |
△ |
△ |
− |
− |
− |
|
#-adsh_step_start AB -run abnormal |
○ |
○ |
△ |
echo "run abnormal step" |
○ |
○ |
△ |
cmdAbnormal |
○ |
○ |
△ |
#-adsh_step_end |
○ |
○ |
△ |
− |
− |
− |
|
#-adsh_step_start AL -run always |
○ |
○ |
△ |
echo "run always step" |
○ |
○ |
△ |
cmdAlways |
○ |
○ |
△ |
#-adsh_step_end |
○ |
○ |
△ |
(2) ジョブステップ正常ブロック内でエラーが発生した場合
ジョブステップ正常ブロック内でエラーが発生した場合の動作を次の表に示します。
発生したエラーの種類 |
後続のコマンド・制御文の動作 |
---|---|
スクリプト拡張コマンドのエラー シェル標準コマンドのエラー(続行できる場合)※ |
|
シェル標準コマンドのエラー(続行できない場合) |
ジョブ定義スクリプトの実行を終了します。 |
ジョブステップ正常ブロック内でエラーが発生した場合の例を,次に示します。
ジョブ定義スクリプトのコーディング例 |
スクリプト拡張コマンドのエラー |
シェル標準コマンドのエラー |
||
---|---|---|---|---|
続行できる場合 |
続行できる場合(onError属性がcontの場合) |
続行できない場合 |
||
#-adsh_step_start S1 -onError stop |
− |
− |
− |
− |
#-adsh_file JOBFILE jobfile |
× |
− |
− |
− |
cmdA |
△ |
× |
× |
− |
shift $n |
△ |
△ |
○ |
× |
cmdB |
△ |
△ |
○ |
△ |
#-adsh_step_error |
○ |
○ |
△ |
△ |
echo "step error block" |
○ |
○ |
△ |
△ |
#-adsh_step_end |
○ |
○ |
○ |
△ |
− |
− |
− |
− |
|
#-adsh_step_start NO -run normal |
△ |
△ |
○ |
△ |
echo "run normal step" |
△ |
△ |
○ |
△ |
cmdNormal |
△ |
△ |
○ |
△ |
#-adsh_step_end |
△ |
△ |
○ |
△ |
− |
− |
− |
− |
|
#-adsh_step_start AB -run abnormal |
○ |
○ |
△ |
△ |
echo "run abnormal step" |
○ |
○ |
△ |
△ |
cmdAbnormal |
○ |
○ |
△ |
△ |
#-adsh_step_end |
○ |
○ |
△ |
△ |
− |
− |
− |
− |
|
#-adsh_step_start AL -run always |
○ |
○ |
○ |
△ |
echo "run always step" |
○ |
○ |
○ |
△ |
cmdAlways |
○ |
○ |
○ |
△ |
#-adsh_step_end |
○ |
○ |
○ |
△ |
(3) ジョブステップエラーブロック内でエラーが発生した場合
ジョブステップエラーブロック内でエラーが発生した場合の,後続のコマンド・制御文の動作を次の表に示します。
発生したエラーの種類 |
後続のコマンド・制御文の動作 |
---|---|
スクリプト拡張コマンドのエラー |
|
シェル標準コマンドのエラー(続行できる場合) |
|
シェル標準コマンドのエラー(続行できない場合) |
ジョブ定義スクリプトの実行を終了します。 |
ジョブステップエラーブロック内でエラーが発生した場合の例を,次に示します。
ジョブ定義スクリプトのコーディング例 |
スクリプト拡張コマンドのエラー |
シェル標準コマンドのエラー |
|
---|---|---|---|
続行できる場合 |
続行できない場合 |
||
#-adsh_step_start S1 -onError stop |
− |
− |
− |
echo "step normal block" |
− |
− |
− |
#-adsh_step_error |
− |
− |
− |
#-adsh_file JOBFILE jobfile |
× |
− |
− |
cmdA |
△ |
× |
− |
shift $n |
△ |
○ |
× |
cmdB |
△ |
○ |
△ |
#-adsh_step_end |
○ |
○ |
△ |
− |
− |
− |
|
#-adsh_step_start NO -run normal |
△ |
△ |
△ |
echo "run normal step" |
△ |
△ |
△ |
cmdNormal |
△ |
△ |
△ |
#-adsh_step_end |
△ |
△ |
△ |
− |
− |
− |
|
#-adsh_step_start AB -run abnormal |
○ |
○ |
△ |
echo "run abnormal step" |
○ |
○ |
△ |
cmdAbnormal |
○ |
○ |
△ |
#-adsh_step_end |
○ |
○ |
△ |
− |
− |
− |
|
#-adsh_step_start AL -run always |
○ |
○ |
△ |
echo "run always step" |
○ |
○ |
△ |
cmdAlways |
○ |
○ |
△ |
#-adsh_step_end |
○ |
○ |
△ |
(4) 注意事項
ジョブステップ外で続行できるシェル標準コマンドのエラーが発生した場合,run属性がnormalのジョブステップを除き,後続のコマンド・制御文をすべて実行します。この場合,ジョブの終了コードも後続のコマンド・制御文の終了コードで上書きされます。エラーの要因となった終了コードをジョブの終了コードに反映したい場合(JP1/AJSでジョブをエラーとしたい場合など)は,onError属性にstopを指定したジョブステップ内にコマンド・制御文を記述してください。