#include <iostream>
using namespace std;
void MyFunc( void );
class CTest
{
public:
CTest(){};
~CTest(){};
const char *ShowReason() const { return "Exception in CTest class."; }
};
class CDtorDemo
{
public:
CDtorDemo();
~CDtorDemo();
};
CDtorDemo::CDtorDemo()
{
cout << "Constructing CDtorDemo." << endl;
throw CTest();
}
CDtorDemo::~CDtorDemo()
{
cout << "Destructing CDtorDemo." << endl;
}
int main()
{
try
{
CDtorDemo D;
}
catch( CTest E )
{
cout << E.ShowReason() << endl;
};
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBNeUZ1bmMoIHZvaWQgKTsKCmNsYXNzIENUZXN0CnsKcHVibGljOgogICAgQ1Rlc3QoKXt9OwogICAgfkNUZXN0KCl7fTsKICAgIGNvbnN0IGNoYXIgKlNob3dSZWFzb24oKSBjb25zdCB7IHJldHVybiAiRXhjZXB0aW9uIGluIENUZXN0IGNsYXNzLiI7IH0KCn07CgpjbGFzcyBDRHRvckRlbW8KewpwdWJsaWM6CiAgICBDRHRvckRlbW8oKTsKICAgIH5DRHRvckRlbW8oKTsKfTsKCkNEdG9yRGVtbzo6Q0R0b3JEZW1vKCkKewogICAgY291dCA8PCAiQ29uc3RydWN0aW5nIENEdG9yRGVtby4iIDw8IGVuZGw7CiAgICB0aHJvdyBDVGVzdCgpOwp9CgpDRHRvckRlbW86On5DRHRvckRlbW8oKQp7CiAgICBjb3V0IDw8ICJEZXN0cnVjdGluZyBDRHRvckRlbW8uIiA8PCBlbmRsOwp9CgppbnQgbWFpbigpCnsKICAgIHRyeQogICAgewogICAgICAgIENEdG9yRGVtbyBEOwogICAgfQogICAgY2F0Y2goIENUZXN0IEUgKQogICAgewogICAgICAgIGNvdXQgPDwgRS5TaG93UmVhc29uKCkgPDwgZW5kbDsKICAgIH07CiAgICByZXR1cm4gMDsKfQ==