名前空間
変種
操作

std::set_terminate

提供: cppreference.com
< cpp‎ | error
 
 
 
エラー処理
例外処理
例外処理の失敗
set_terminate
(C++17未満)
(C++17未満)
(C++11)(C++17未満)
(C++17未満)
契約
 
ヘッダ <exception> で定義
(C++11未満)
std::terminate_handler set_terminate( std::terminate_handler f ) noexcept;
(C++11以上)

f を新しいグローバルな終了ハンドラに設定し、以前設定されていた std::terminate_handler を返します。

この関数はスレッドセーフです。 std::set_terminate のすべての呼び出しは後続の std::set_terminate および std::get_terminate に対して同期します (std::memory_order を参照してください)。

(C++11以上)

目次

[編集] 引数

f - std::terminate_handler 型の関数へのポインタ、またはヌルポインタ

[編集] 戻り値

以前設定した終了ハンドラ、または何も設定されていなければヌルポインタ値。

[編集]

#include <iostream>
#include <cstdlib>
#include <exception>
 
int main()
{
    std::set_terminate([](){ std::cout << "Unhandled exception\n"; std::abort();});
    throw 1;
}

出力例:

Unhandled exception
bash: line 7:  7743 Aborted                 (core dumped) ./a.out

[編集] 関連項目

例外処理が失敗したときに呼ばれる関数
(関数) [edit]
現在の terminate_handler を取得します
(関数) [edit]
std::terminate によって呼ばれる関数の型
(typedef) [edit]