Any of the functions defined in the C++ standard library
can 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
.