// Fig. 13.2: fig13_02.cpp

// Demonstration of rethrowing an exception.

#include <iostream>

 

using std::cout;

using std::endl;

 

#include <exception>

 

using std::exception;

 

void throwException()

{

   // Throw an exception and immediately catch it.

   try {

      cout << "Function throwException\n";

      throw exception();  // generate exception

   }

   catch( exception e )

   {

      cout << "Exception handled in function throwException\n";

      throw;  // rethrow exception for further processing

   }

 

   cout << "This also should not print\n";

}  

 

int main()

{

   try {

      throwException();

      cout << "This should not print\n";

   }

   catch ( exception e )

   {

      cout << "Exception handled in main\n";

   }

 

   cout << "Program control continues after catch in main"

        << endl;

   return 0;

}

 

 

/**************************************************************************

 * (C) Copyright 2000 by Deitel & Associates, Inc. and Prentice Hall.     *

 * All Rights Reserved.                                                   *

 *                                                                        *

 * DISCLAIMER: The authors and publisher of this book have used their     *

 * best efforts in preparing the book. These efforts include the          *

 * development, research, and testing of the theories and programs        *

 * to determine their effectiveness. The authors and publisher make       *

 * no warranty of any kind, expressed or implied, with regard to these    *

 * programs or to the documentation contained in these books. The authors *

 * and publisher shall not be liable in any event for incidental or       *

 * consequential damages in connection with, or arising out of, the       *

 * furnishing, performance, or use of these programs.                     *

 *************************************************************************/