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
|