try statement

   
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.

Example

 int main(  )  try  {   run_program(  ); } catch(const exception& ex) {   std::cerr << ex.what(  ) << '\n';   abort(  ); } catch(...) {   std::cerr << "Unknown exception. Program terminated.\n";   abort(  ); } 

See Also

catch , declarator , function , throw , type , Chapter 4, <exception> in Chapter 13

   


C++ in a Nutshell
C++ in a Nutshell
ISBN: 059600298X
EAN: 2147483647
Year: 2005
Pages: 270
Authors: Ray Lischner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net