[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.