catch keyword

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.

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