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.