#include using namespace std; class Loud { public: Loud(char c) : flag(c) { cout << "ctor " << flag << '\n'; } ~Loud() { cout << "dtor " << flag << '\n'; } const char flag; }; void foo() { Loud a('a'); throw "oops!"; } int main() { try { foo(); } catch (int i) { cout << "Caught an int " << i << "\n"; } catch (const char *error) { cout << "Caught an error: “" << error << "”\n"; } catch (...) { cout << "Caught something--don’t know what it is.\n"; } return 0; }