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
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access