set_unexpected
except.h:インデックス への移動
ヘッダーファイル
except.h
構文
typedef void ( * unexpected_handler )();
unexpected_handler set_unexpected(unexpected_handler unexpected_func);
説明
set_unexpected を使用して,例外仕様にリストされていない例外を関数が送出した場合のプログラムの動作を定義する関数をインストールできます。アクションは unexpected_func で定義されます。これは,unexpected_handler 型の関数として宣言されます。unexpected_handler 型は except.h で定義されており,引数がなく,void を返す関数です。
デフォルトでは,予期しない例外によって unexpected 関数が呼び出されます。unexpected_func が定義されている場合は,続けて unexpected_func が unexpected から呼び出されます。これで,プログラムの制御がユーザー定義の unexpected_func に渡されます。そうでない場合は,terminate 関数が呼び出されます。
戻り値
前回 set_unexpected に渡された関数が戻り値になります。
定義により,unexpected_func から呼び出し側の unexpected 関数に戻ってはなりません。呼び出し側に戻ろうとした場合のプログラム動作は未定義です。
また,unexpected_func は,abort,exit,または terminate 関数を呼び出すことができます。