#include using namespace std; class BlabT{ public: BlabT(string s) { data = s; } ~BlabT() { cout << "Destroying " << data << endl; } private: string data; }; void Fun1(int i); void Fun2(int i); int main() { int i; for(i =1; i < 3; i++ ) { cout << "Before the try-catch block, i = " << i << endl; try { BlabT x("Built in try block"); cout << "Starting the try block " << endl; Fun2(i); cout << "Ending the try block" << endl; } catch (string & e) { cout << "Starting the catch block" << endl; cout << "I received an exception " << e << endl; cout << "Ending the catch block" << endl; } cout << "outside of try-catch block " << endl; cout << endl << endl; } return 0; } void Fun2(int i) { cout << "Starting in fun2" << endl; BlabT x("built in fun2"); Fun1(i); cout << "Done in Fun2" << endl; return; } void Fun1(int i) { BlabT x("Built in fun1"); cout << "Starting Fun1 " << endl; if (i %2 == 0) { string s = "Can't run Fun1 on an even number"; throw s; } cout << "Ending Fun1" << endl; return; }