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

16 Library introduction [library]

16.5 Library-wide requirements [requirements]

16.5.5 Conforming implementations [conforming]

16.5.5.13 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 an exception handler for the base type.

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

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.

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

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