Terminate Handler
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
#include <exception>
using namespace std;
void readIntegerFile(const string& fileName, vector<int>& dest)
{
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("");
}
}
void myTerminate()
{
cout << "Uncaught exception!\n";
exit(1);
}
int main(int argc, char** argv)
{
vector<int> myInts;
const string fileName = "IntegerFile.txt";
set_terminate(myTerminate);
readIntegerFile(fileName, myInts);
for (size_t i = 0; i < myInts.size(); i++) {
cerr << myInts[i] << " ";
}
cout << endl;
return (0);
}
Related examples in the same category