throw exception in function cascading : file IO Exception « File Stream « C++ Tutorial






#include <fstream>
#include <iostream>
#include <stdexcept>
using namespace std;

void funcOne() throw(exception);
void funcTwo() throw(exception);

int main(int argc, char** argv)
{
  try {
    funcOne();
  } catch (exception& e) {
    cerr << "Exception caught!\n";
    exit(1);
  }

  return (0);
}

void funcOne() throw(exception)
{
  string str1;
  string* str2 = new string();
  try {
    funcTwo();
  } catch (...) {
    delete str2;
    throw; // rethrow the exception
  }
  delete str2;
}

void funcTwo() throw(exception)
{
  ifstream istr;
  istr.open("filename");
  throw exception();
  istr.close();
}








12.22.file IO Exception
12.22.1.Read a file in try catch block
12.22.2.Handle basic exception
12.22.3.throw exception in function cascading
12.22.4.checks for errors opening file
12.22.5.handles errors during input and output