[res.on.exception.handling] (original) (raw)

16 Library introduction [library]

16.4 Library-wide requirements [requirements]

16.4.6 Conforming implementations [conforming]

16.4.6.14 Restrictions on exception handling [res.on.exception.handling]

Any of the functions defined in the C++ standard librarycan report a failure by throwing an exception of a type described in its Throws: paragraph, or of a type derived from a type named in the Throws: paragraph that would be caught by a handler ([except.handle]) for the base type.

Functions from the C standard library shall not throw exceptions156except when such a function calls a program-supplied function that throws an exception.157

Destructor operations defined in the C++ standard library shall not throw exceptions.

Every destructor in the C++ standard library shall behave as if it had a non-throwing exception specification ([except.spec]).

Functions defined in the C++ standard librarythat do not have a Throws: paragraph but do have a potentially-throwing exception specification may throw implementation-defined exceptions.158

An implementation may strengthen the exception specification for a non-virtual function by adding a non-throwing exception specification.