CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 24 Jul 2025 20:45:39 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/exception/set_terminate/
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 24 Jul 2025 20:45:39 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"71ca-62dFGfQQkzsWZn+pPaGsXBZuYGM"
Content-Encoding: gzip
Sets f as the terminate handler function.
A terminate handler function is a function automatically called when the exception handling process has to be abandoned for some reason. This happens when no
Before this function is called by the program for the first time, the default behavior is to call abort.
A program may explicitly call the current terminate handler function by calling terminate,
terminate_handler is a function pointer type taking no arguments and returning no value.
Possible output:
Notice that this requirement applies only to the set_terminate function, but not necessarily to the terminate handler function passed as argument (f).
Notice that if f is a function that does not implement the proper functionality (described above), or if f is an invalid or null pointer, it causes undefined behavior.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<exception>
functions
-
current_exceptionC++11
-
get_terminateC++11
-
get_unexpectedC++11
-
make_exception_ptrC++11
-
rethrow_exceptionC++11
-
rethrow_if_nestedC++11
- set_terminate
- set_unexpected
- terminate
-
throw_with_nestedC++11
- uncaught_exception
- unexpected
-
types
- Reference
- <exception>
- set_terminate
function
<exception>
std::set_terminate
terminate_handler set_terminate (terminate_handler f) throw();
terminate_handler set_terminate (terminate_handler f) noexcept;
Set terminate handler function
A terminate handler function is a function automatically called when the exception handling process has to be abandoned for some reason. This happens when no
catch
handler can be found for a thrown exception, or for some other exceptional circumstance that makes impossible to continue the exception handling process.Before this function is called by the program for the first time, the default behavior is to call abort.
A program may explicitly call the current terminate handler function by calling terminate,
Parameters
- f
- Function that takes no parameters and returns no value (
void
).
The function shall terminate execution of the program without returning to the caller.
terminate_handler is a function pointer type taking no parameters and returning void.
Return value
The previous terminate handler function, if any. This may be a null-pointer.terminate_handler is a function pointer type taking no arguments and returning no value.
Example
|
|
Possible output:
terminate handler called Aborted |
Data races
Calling this function does not introduce a data race, and any such calls are synchronized with subsequent calls to set_terminate and get_terminate.Notice that this requirement applies only to the set_terminate function, but not necessarily to the terminate handler function passed as argument (f).
Exception safety
No-throw guarantee: this function (set_terminate) never throws exceptions.Notice that if f is a function that does not implement the proper functionality (described above), or if f is an invalid or null pointer, it causes undefined behavior.
See also
- terminate
- Function handling termination on exception (function)
- terminate_handler
- Type of terminate handler function (type)
- set_unexpected
- Set unexpected handler function (function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us