May 2003
Intermediate to advanced
808 pages
32h 24m
English
try statement — Handles exceptions in statements
statement := try-block
try-block ::= try compound-statement
handler-seq
function-try-block ::= try [ctor-initializer] function-body
handler-seq
handler-seq ::= handler | handler-seq
handler
handler ::= catch ( exception-declaration ) compound-statement
exception-declaration ::= type-specifier-seq declarator |
type-specifier-seq abstract-declarator | type-specifier-seq | . . .The try statement executes
compound-statement, and if an
exception is thrown in any of the statements within that compound
statement (and not caught and handled by another try statement), the catch handlers are tested to see if any of
them can handle the exception. Each catch handler is tested in turn. The first
one to match the exception type handles the exception. If no handler
matches, the exception propagates up the call stack to the next
try statement. If there is no
further try statement, terminate( ) is called.
int main( )try {
run_program( );
} catch(const exception& ex) {
std::cerr << ex.what( ) << '\n';
abort( );
} catch(...) {
std::cerr << "Unknown exception. Program terminated.\n";
abort( );
}catch, declarator, function, throw, type, Chapter
4, <exception> in
Chapter 13