#include "iostream"
//#include "conio.h"
#include "exception"
#include "cstdlib"
using namespace std;
void myunexpected ()
{
cerr << "unexpected called\n";
throw 0; // throws int (in exception-specification)
}
void myfunction () throw (int)
{
throw 'x'; // throws char (not in exception-specification)
}
int main (void)
{
set_unexpected (myunexpected);
try
{
myfunction();
}
catch (int) { cerr << "caught int\n"; }
catch (...) { cerr << "caught other exception (non-compliant compiler?)\n"; }
// getch();
return 0;
}
ICAjaW5jbHVkZSAiaW9zdHJlYW0iCiAgICAvLyNpbmNsdWRlICJjb25pby5oIgogICAgI2luY2x1ZGUgImV4Y2VwdGlvbiIKICAgICNpbmNsdWRlICJjc3RkbGliIgogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiAgICB2b2lkIG15dW5leHBlY3RlZCAoKSAKICAgIHsKICAgICAgICBjZXJyIDw8ICJ1bmV4cGVjdGVkIGNhbGxlZFxuIjsKICAgICAgICB0aHJvdyAwOyAgICAgLy8gdGhyb3dzIGludCAoaW4gZXhjZXB0aW9uLXNwZWNpZmljYXRpb24pCiAgICB9CgogICAgdm9pZCBteWZ1bmN0aW9uICgpIHRocm93IChpbnQpIAogICAgewogICAgICAgIHRocm93ICd4JzsgICAvLyB0aHJvd3MgY2hhciAobm90IGluIGV4Y2VwdGlvbi1zcGVjaWZpY2F0aW9uKQogICAgfQoKICAgIGludCBtYWluICh2b2lkKSAKICAgIHsKICAgICAgICBzZXRfdW5leHBlY3RlZCAobXl1bmV4cGVjdGVkKTsKICAgICAgIHRyeSAKICAgICAgIHsKICAgICAgICAgIG15ZnVuY3Rpb24oKTsKICAgICAgIH0KICAgICAgIGNhdGNoIChpbnQpIHsgY2VyciA8PCAiY2F1Z2h0IGludFxuIjsgfQogICAgICAgY2F0Y2ggKC4uLikgeyBjZXJyIDw8ICJjYXVnaHQgb3RoZXIgZXhjZXB0aW9uIChub24tY29tcGxpYW50IGNvbXBpbGVyPylcbiI7IH0KICAgICAgLy8gZ2V0Y2goKTsKICAgICAgIHJldHVybiAwOwogICAgfQ==