A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://timsong-cpp.github.io/cppwp/n4659/except.special below:

[except.special]

18 Exception handling [except] 18.5 Special functions [except.special] 18.5.1 The std​::​terminate() function [except.terminate]

In some situations exception handling must be abandoned for less subtle error handling techniques. [Note: These situations are:

end note]

In such cases, std​::​terminate() is called. In the situation where no matching handler is found, it is implementation-defined whether or not the stack is unwound before std​::​terminate() is called. In the situation where the search for a handler encounters the outermost block of a function with a non-throwing exception specification, it is implementation-defined whether the stack is unwound, unwound partially, or not unwound at all before std​::​terminate() is called. In all other situations, the stack shall not be unwound before std​::​terminate() is called. An implementation is not permitted to finish stack unwinding prematurely based on a determination that the unwind process will eventually cause a call to std​::​terminate().

18.5.2 The std​::​uncaught_­exceptions() function [except.uncaught]

An exception is considered uncaught after completing the initialization of the exception object until completing the activation of a handler for the exception ([except.handle]). This includes stack unwinding. If an exception is rethrown ([expr.throw], [propagation]), it is considered uncaught from the point of rethrow until the rethrown exception is caught. The function std​::​uncaught_­exceptions() returns the number of uncaught exceptions in the current thread.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4