1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#include <exception> struct One { }; struct Two { }; extern "C" void abort (); extern void doit (void) throw (Two); extern void handle_unexpected (void); void unexpected1_x () { std::set_unexpected (handle_unexpected); try { doit (); } catch (Two &) { } catch (...) { abort (); } }