Exception Specifications
An exception specification consists of the throw keyword
followed by a list of exception types enclosed in
parentheses.
The exception specification is the last item in a function
declaration or function header.
The list may be empty.
This guarantees that the function will not throw any
exceptions.
A non empty list guarantees that the function will only
throw exceptions of the type(s) specified in the list.
If the exception specification is absent, the function can
throw any type of exception.