try { // Code that may generate exceptions } catch(type1 id1) { // Handle exceptions of type1 } catch(type2 id2) { // Handle exceptions of type2 } catch(type3 id3) // Etc... } catch(typeN idN) // Handle exceptions of typeN } // Normal execution resumes here...
//: C01:Nonlocal2.cpp // Illustrates exceptions. #include <iostream> using namespace std; class Rainbow { public: Rainbow() { cout << "Rainbow()" << endl; } ~Rainbow() { cout << "~Rainbow()" << endl; } }; void oz() { Rainbow rb; for(int i = 0; i < 3; i++) cout << "there's no place like home" << endl; throw 47; } int main() { try { cout << "tornado, witch, munchkins..." << endl; oz(); } catch(int) { cout << "Auntie Em! I had the strangest dream..." << endl; } } ///:~
Listado 2.3. C01/Nonlocal2.cpp