13.6. Exception Specifications

Well-designed systems with exception handling need to define which functions throw exceptions and which functions do not. Comments that specify what exceptions a function may throw are error prone and difficult to maintain. A language-supported mechanism is necessary to document exception handlers and involve the compiler. With exception specifications, we describe exactly which exceptions, if any, a function throws. We also have ways to control what happens if functions throw an unexpected exception.

You append an exception specification to a function declaration or function definition. Here are the formats.

					Type function_name(signature) throw (e1, e2, eN);       // prototype 

Type function_name(signature) throw (e1, ...

Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.