次の表は、理由コードに設定されるビットをリストしたものです。 活動化グループを停止すると、「活動化グループが停止する」ビットも理由コードに設定されます。 これらのビットは、<except.h> の _CNL_Hndlr_Parms_T にある _CNL_MASK_T と相互に関連付けられている必要があります。 第 2 列には、<except.h> の取り消し理由マスクに定義されたマクロ定数が記載されています。
機能 | 理由コードに設定されたビット | 論拠 |
---|---|---|
ライブラリー・ルーチン | ||
exit | _EXIT_VERB | exit の定義は、処理の正常終了です。 したがって、この関数によって取り消された呼び出しは、理由コード normal で実行されます。 |
abort |
_ABNORMAL_TERM _EXIT_VERB |
abort の定義は、処理の異常終了です。 したがって、この関数によって取り消された呼び出しは、理由コード abnormal で実行されます。 |
longjmp | _JUMP | 通常は、例外ハンドラーから戻る場合に、longjmp() 関数を使用します。 ただし、例外以外の状態においても使用されることがあります。 これは、プログラムの「通常」パスの一部として使用されます。 したがって、これが原因で取り消された呼び出しは、理由コード normal で取り消されます。 |
未処理機能チェック |
_ABNORMAL_TERM_ UNHANDLED_EXCP |
異常状態の例外が未処理です。 |
システム API | ||
CEEMRCR |
_ABNORMAL_TERM _EXCP_SENT |
この API が使用されるのは、例外処理時のみです。 通常は、再開できない呼び出し、または制御が再開されても振る舞いが予期できない呼び出しを取り消す目的で使用されます。 これらの呼び出しによって、例外を処理することも可能でしたが、実際には実行されませんでした。 この API によって取り消された呼び出しは、理由コード abnormal で実行されます。 |
QMHSNDPM /QMHRSNEM (エスケープ・メッセージ) メッセージ・ハンドラー API | _ABNORMAL_TERM _EXCP_SENT | ターゲット呼び出しにまで至るすべての呼び出しが、例外を処理する機会がないまま取り消されます。 トピック『API』では、これらの API に関する情報を紹介しています。 |
i5/OS® コマンド | ||
プロセスの終了 | _ABNORMAL_TERM _PROCESS_TERM _AG_TERMINATING | 活動化グループのシャットダウンが外部から開始された場合は、異常と見なされます。 |
RCLACTGRP | _ABNORMAL_TERM _RCLRSC | デフォルトは、異常終了です。 normal/abnormal フラグがコマンドに追加されていると、正常終了する場合があります。 |
ビット | 説明 | ヘッダー・ファイル定数 <except.h> |
---|---|---|
ビット 0 | 予約済み | |
ビット 1 | 例外メッセージの送信により取り消された呼び出し | _EXCP_SENT |
ビット 2 - 15 | 予約済み | |
ビット 16 | 0 - プロセスの正常終了、1 - プロセスの異常終了 | _ABNORMAL_TERM |
ビット 17 | 活動化グループが終了。 | _AG_TERMINATING |
ビット 18 | 活動化グループ再利用 (RCLACTGRP) によって開始。 | _RCLRSC |
ビット 19 | プロセスの終了によって開始。 | _PROCESS_TERM |
ビット 20 | exit() 関数によって開始。 | _EXIT_VERB |
ビット 21 | 未処理機能チェックによって開始。 | _UNHANDLED_EXCP |
ビット 22 | longjmp() 関数により取り消された呼び出し。 | _JUMP |
ビット 23 | 例外処理のために jump により取り消された呼び出し | _JUMP_EXCP |
ビット 24 - 31 | 予約済み (0) |