Hello Klaus, What do you really expect of the program? To me, not an expert in exceptions anyway, it is the normal flow. Probably you may gain some confidence from the ff. MS own codes under the topic "C++ Exception Examples"... Check the MSDN for the expected results and see how this is different or similar to yours. Again, I am not an expert, so take this as my humble piece!!! #include 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; } CDtorDemo::~CDtorDemo() { cout << "Destructing CDtorDemo." << endl; } void MyFunc() { CDtorDemo D; cout<< "In MyFunc(). Throwing CTest exception." << endl; throw CTest(); } int main() { cout << "In main." << endl; try { cout << "In try block, calling MyFunc()." << endl; MyFunc(); } catch( CTest E ) { cout << "In catch handler." << endl; cout << "Caught CTest exception type: "; cout << E.ShowReason() << endl; } catch( char *str ) { cout << "Caught some other exception: " << str << endl; } cout << "Back in main. Execution resumes here." << endl; return 0; }