set_unexpected() - unexpected() 用の関数の登録

標準

標準/拡張機能 C/C++ 依存項目

ANSI/ISO
C++

C++ のみ  

形式

#include <exception>

unexpected_handler set_unexpected(unexpected_handler ph) throw();

機能説明

set_unexpected() 関数は、z/OS® XL C++ エラー処理メカニズムの一部です。 set_unexpected() に与えられる引数は、ヘッダー <exception> に定義される、型 unexpected_handler によるものです (つまり、void 戻り型の関数、および引数なしの関数へのポインター)。 指定された関数は、unexpected() 関数によって呼び出されます。

unexpected() に登録されている関数は、呼び出し元には、戻ることはできません。次の方法で実行を終了できます。
  • 例外仕様にリストされた型のオブジェクトをスローする (または、unexpected ハンドラーがプログラムから直接呼び出される場合には任意の型のオブジェクト)。
  • 型 bad_exception のオブジェクトをスローする。
  • terminate()、abort()、または exit(int) を呼び出す。
set_unexpected() がまだ呼び出されていない場合、unexpected() は terminate() を呼び出します。

マルチスレッド環境では、set_unexpected() 呼び出しの発行によって作成された unexpected() 関数が、(POSIX) プロセスのすべてのスレッドに適用されます。

戻り値

set_unexpected() は、直前の unexpected_handler のアドレスを戻します。

set_unexpected() 関数を含む、z/OS XL C++ 例外処理の詳細については、「z/OS XL C/C++ ランゲージ・リファレンス」を参照してください。

関連情報