Name
catch keyword — Exception handler in try statement
Synopsis
handler ::= catch ( exception-declaration ) compound-statement exception-declaration ::= type-specifier-seq declarator | type-specifier-seq abstract-declarator | type-specifier-seq | . . .
The catch
keyword introduces
an exception handler in a try
statement. A single try
statement
must have one or more catch
blocks.
The exception-declaration declares an exception
handler object. If an exception is thrown in the try
’s compound-statement, the type of the
exception object is compared with the type of each catch
declaration. The compound-statement of the first catch
block whose type matches that of the
exception object is executed. A catch
block (typically the last one in a
try
statement) can have an
ellipsis ( . .
. ) as
the exception-declaration to
match all exceptions.
Example
int main( ) try { run_program( ); }catch
(const std::exception& ex) { std::cerr << ex.what( ) << '\n'; std::abort( ); }catch
(...) { std::cerr << "Unknown exception. Program terminated.\n"; std::abort( ); }
See Also
declarator, statement, throw
, try
, type, Chapter
4
Get C++ In a Nutshell 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.