Mega Code Archive

 
Categories / C++ / Function
 

Function prototype with throw signature

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