File Stream C++ Tutorial

#include 
#include 
#include 
#include 
#include 
using namespace std;
void readIntegerFile(const string& fileName, vector& dest)throw (invalid_argument, runtime_error)
{
  ifstream istr;
  int temp;
  istr.open(fileName.c_str());
  if (istr.fail()) {
    string error = "Unable to open file " + fileName;
    throw invalid_argument(error);
  }
  while (istr >> temp) {
    dest.push_back(temp);
  }
  if (istr.eof()) {
    istr.close();
  } else {
    istr.close();
    string error = "Unable to read file " + fileName;
    throw runtime_error(error);
  }
}
int main(int argc, char** argv)
{
  vector myInts;
  const string fileName = "test.txt";
  try {
    readIntegerFile(fileName, myInts);
  } catch (const invalid_argument& e) {
    cerr << e.what() << endl;
    exit (1);
  } catch (const runtime_error& e) {
    cerr << e.what() << endl;
    exit (1);
  }
  for (unsigned int i = 0; i < myInts.size(); i++) {
    cout << myInts[i] << " ";
  }
  cout << endl;
  return (0);
}