std::set_terminate
Defined in header <exception> |
||
|---|---|---|
std::terminate_handler set_terminate( std::terminate_handler f ) throw(); |
(до C++11) | |
std::terminate_handler set_terminate( std::terminate_handler f ) noexcept; |
(с C++11) |
Устанавливает f в качестве новой глобальной функции обработчика завершения и возвращает ранее установленную std::terminate_handler. f должна завершать выполнение программы без возврата к своему вызывающему элементу, в противном случае поведение не определено.
|
Эта функция потокобезопасна. Каждый вызов |
(с C++11) |
Параметры
| f | - | указатель на функцию типа std::terminate_handler, или нулевой указатель |
Возвращаемое значение
Ранее установленный обработчик завершения или значение нулевого указателя, если он не был установлен.
Пример
#include <cstdlib>
#include <exception>
#include <iostream>
int main()
{
std::set_terminate([]()
{
std::cout << "Unhandled exception\n" << std::flush;
std::abort();
});
throw 1;
}Возможный вывод:
Unhandled exception bash: line 7: 7743 Aborted (core dumped) ./a.out
См. также
| функция, вызываемая при ошибке обработки исключений (функция) |
|
|
(C++11) |
получает текущий обработчик завершения (функция) |
тип функции, вызываемой std::terminate (typedef) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/error/set_terminate