ZMESSAGEコマンドは、指定されたメッセージ・コードに基づいて例外条件を発生させます。
ZMESSAGEコマンドのフォーマットは:
[参考]ZM[ESSAGE][:tvexpr] intexpr [:expr...][,...]
オプションでコマンド直後に続く真理値の式は、GT.Mがコマンドを実行するかどうかをコントロールする後置コマンドです。
必要な整数式は、メッセージコードを指定します。メッセージコードには2種類あります。
150339592 のメッセージコードはGT.Mから発生されています。メッセージ・コードのテキストを調べるには、$ZMESSAGE() を参照してください。
これらのメッセージコードの3つの最下位ビット(lsb)は、エラー処理アクションを決定する重大度を示します。
3 lsb |
Severity: 重要度 |
Action:アクション |
---|---|---|
0 |
Warning : 警告 |
$ETRAPまたは$ZTRAPを実行(XECUTE)し、プロセスを終了します。 |
1 |
Success : 成功 |
関連するメッセージを表示し、実行を続行します。 |
2 |
エラー |
$ETRAPまたは$ZTRAPを実行(XECUTE)し、プロセスを終了します。 |
3 |
Information (Success&Error) : 情報(成功とエラー) |
関連するメッセージを表示し、実行を続行します。$ETRAPまたは$ZTRAPは呼び出されません。 |
4 |
Severe/Fatal : 重要度/致命度 |
関連するメッセージを表示し、プロセスを終了します。 |
5,6,7 |
割り当てられていない/サポートされていない |
- |
1〜132 の間にあるメッセージ・コードは、OSサービスから来ます。ZMESSAGE は、すべてのそのようなコードをトラップ可能なエラーまたは致命的なイベントとして扱います。
ZMESSAGEは、エラー状態をシミュレートするツールとして使用できます。コロン ":" の後に指定された追加の式は、指定された例外条件の順序付きコンテキスト置換です。例えば、条件に関連付けられたメッセージに置換ディレクティブが含まれている場合、追加の式として文字列を渡すと、対応する置換ディレクティブのポイントに文字列がメッセージテキストdatに挿入されます。
ZMESSAGEは、2組のエラー・メッセージをSPCLZMSGエラーに変換します:
ユーザーに表示されるべきではない内部エラーメッセージ。
対応する内部状態が利用可能であるときに駆動されると予想されるエラーメッセージ。このようなエラーのリストは次のとおりです:CTRLY, CTRLC, CTRAP, JOBINTRRQST, JOBINTRRETHROW, REPEATERROR, STACKCRIT, SPCLZMSG, TPRETRY, UNSOLCNTERR
ZMESSAGEは概念的には SET $ECODE=",<expr>," と似ています。
次の例のすべては、例外条件が$ZTRAPを起動しないダイレクトモードから、ZMESSAGE を発行します。
例:
GTM>ZMessage 2 %SYSTEM-E-ENO2, No such file or directory
このZMESSAGEは置換テキストを指定しません、そして、メッセージは任意の置換ディレクティブは含まれません。
例:
GTM>ZMESSAGE 150372994 %GTM-E-GVUNDEF, Global Variable undefined:
このZMESSAGEコマンドで指定されたメッセージは、置換ディレクティブを含んでいますが、コマンドは任意のテキストを提供しません。
例:
GTM>ZMESSAGE 150373850:"x" %GTM-E-GVUNDEF, Undefined local variable: x
このZMESSAGEコマンドは、メッセージに対して置換テキストを提供しています。
GT.M は、それ自身の奇数番号の条件を「成功」として扱います。GT.Mは、関連するメッセージを表示して実行を継続することで、正常な条件を処理します。GT.Mは、それ自身の偶数番号の条件を失敗として扱います。GT.Mは、エラー情報を$ZSTATUSとXECUTE(実行)中の $ETRAPまたは$ZTRAPに格納することによって、エラー条件を処理します。 ダイレクトモードでは、GT.Mは障害状態を主装置(プリンシプル・デバイス)に報告し、XECUTE $ETRAP または XECUTE $ZTRAP または set $ZSTATUSを実行しません; $PRINCIPALがCENABLEモードの場合、GT.Mはエラーではなく成功のフォームの情報メッセージを送信します。システム・サービス・エラーはGT.Mの奇数/偶数パターンに従いません。