try { try { throw 10; } catch (int i) { cerr << "Caught : " << i << endl; throw 20.0; } catch (...) { cerr << "Won't reach" << endl;; } } catch (int i) { cerr << "int : " << i << endl; } catch (double d) { cerr << "double : " << d << endl; throw; }