/* Teht„v„ 2.39 Virhek„sittely throw:n avulla */ #include #include #include using namespace std; class cTiedosto { ifstream file; string nimi; public: cTiedosto(char *n) { file.open(n); nimi = n; } ~cTiedosto() { file.close(); } int aukesiko(); int anna_luku() { int luku; file >> luku; return luku; } }; int cTiedosto::aukesiko() { if (file) throw string(nimi); return 0; } int lue_tied() { int v; try { cTiedosto t1("tied1.txt"); v = t1.aukesiko(); cTiedosto t2("tied2.txt"); v = t2.aukesiko(); cTiedosto t3("tied3.txt"); v = t3.aukesiko(); } catch (string nimi) { cout<< "Tiedosto " << nimi << " ei aukea.\n"; return 0; } int summa = t1.anna_luku() + t2.anna_luku() + t3.anna_luku(); return summa; } int main (void) { int tark = lue_tied(); if (tark != 0) cout<< "Summa on " << tark << "\n" ; return 0; }