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