catch keyword | Exception handler in try statement |
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.
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( ); }
declarator , statement , throw , try , type , Chapter 4