#include <stdio.h>
#include <iostream>
using namespace std;
class A {
public:
~A() {
try {
printf("exception in A start\n");
throw 30;
printf("exception in A end\n");
}catch(int e) {
printf("catch in A %d\n",e);
}
}
};
class B{
public:
~B() {
printf("exception in B start\n");
throw 20;
printf("exception in B end\n");
}
};
int main(void) {
try {
A a;
B b;
}catch(int e) {
printf("catch in main %d\n",e);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgQSB7CiBwdWJsaWM6CiAgfkEoKSB7CiAgICB0cnkgewogICAgICBwcmludGYoImV4Y2VwdGlvbiBpbiBBIHN0YXJ0XG4iKTsKICAgICAgdGhyb3cgMzA7CiAgICAgIHByaW50ZigiZXhjZXB0aW9uIGluIEEgZW5kXG4iKTsgICAgICAKICAgIH1jYXRjaChpbnQgZSkgewogICAgICBwcmludGYoImNhdGNoIGluIEEgJWRcbiIsZSk7CiAgICB9CiAgfQp9OwpjbGFzcyBCewogcHVibGljOgogIH5CKCkgewogICAgcHJpbnRmKCJleGNlcHRpb24gaW4gQiBzdGFydFxuIik7CiAgICB0aHJvdyAyMDsKICAgIHByaW50ZigiZXhjZXB0aW9uIGluIEIgZW5kXG4iKTsgICAgCiAgfQp9OwppbnQgbWFpbih2b2lkKSB7CiAgdHJ5IHsKICAgIEEgYTsKICAgIEIgYjsKICB9Y2F0Y2goaW50IGUpIHsKICAgIHByaW50ZigiY2F0Y2ggaW4gbWFpbiAlZFxuIixlKTsKICB9CiAgcmV0dXJuIDA7Cn0K