Click here to Skip to main content
16,011,585 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Constructors throwing exceptions cont. Pin
tom7624-Jul-02 4:02
tom7624-Jul-02 4:02 
GeneralRe: Constructors throwing exceptions cont. Pin
Tomasz Sowinski24-Jul-02 4:10
Tomasz Sowinski24-Jul-02 4:10 
GeneralRe: Constructors throwing exceptions cont. Pin
tom7624-Jul-02 4:28
tom7624-Jul-02 4:28 
GeneralRe: Constructors throwing exceptions cont. Pin
Tomasz Sowinski24-Jul-02 4:34
Tomasz Sowinski24-Jul-02 4:34 
GeneralRe: Constructors throwing exceptions cont. Pin
tom7624-Jul-02 4:51
tom7624-Jul-02 4:51 
GeneralRe: Constructors throwing exceptions cont. Pin
Tomasz Sowinski24-Jul-02 5:03
Tomasz Sowinski24-Jul-02 5:03 
GeneralRe: Constructors throwing exceptions cont. Pin
Philippe Mori24-Jul-02 8:16
Philippe Mori24-Jul-02 8:16 
GeneralRe: Constructors throwing exceptions cont. Pin
JohnnyG24-Jul-02 10:45
JohnnyG24-Jul-02 10:45 
This is what we do because destructors are not called if an exception occurs in the constructor. We put try/catch blocks in constructors but also do cleanup of allocated memory if it fails. This is a good process for making sure you cleanup what was allocated before the failure occurred.

MyObject::MyObject()
{
// first set all ptrs to null.
m_pBlackCat = NULL;
m_pWhiteCat = NULL;
m_pDog = NULL;

// then allocate the memory or whatever process you're going to try to
// catch exception on
try
{
m_pBlackCat = new BlackCat();
m_pWhiteCat = new WhiteCat();
m_pDog = new Dog();
}
catch(...) // or catch CMemoryException& ce
{
CleanUp();
throw;
}
}

MyObject::~MyObject()
{
CleanUp();
}

MyObject::CleanUp();
{
// It's okay to delete, even if ptr is equal to NULL.
delete m_pBlackCat;
delete m_pWhiteCat;
delete m_Dog;
}
GeneralRe: Constructors throwing exceptions cont. Pin
tom7624-Jul-02 21:51
tom7624-Jul-02 21:51 
GeneralGOT IT! Pin
tom7624-Jul-02 23:18
tom7624-Jul-02 23:18 
Generalhelp needed Pin
OmarLodhi24-Jul-02 3:00
OmarLodhi24-Jul-02 3:00 
GeneralRe: help needed Pin
Philippe Mori24-Jul-02 8:18
Philippe Mori24-Jul-02 8:18 
GeneralVisual C++ optimize Pin
Hiusing24-Jul-02 2:47
Hiusing24-Jul-02 2:47 
GeneralCHtmlView printing doubt - (tech level - newbie) Pin
Nish Nishant24-Jul-02 1:55
sitebuilderNish Nishant24-Jul-02 1:55 
GeneralRe: CHtmlView printing doubt - One line solution :-) Pin
Nish Nishant24-Jul-02 2:32
sitebuilderNish Nishant24-Jul-02 2:32 
GeneralHINSTANCE hPrevious Pin
slah24-Jul-02 1:21
slah24-Jul-02 1:21 
GeneralRe: HINSTANCE hPrevious Pin
Nish Nishant24-Jul-02 1:25
sitebuilderNish Nishant24-Jul-02 1:25 
GeneralRe: HINSTANCE hPrevious Pin
Atlence24-Jul-02 5:31
Atlence24-Jul-02 5:31 
GeneralRe: HINSTANCE hPrevious Pin
Daniel Lohmann24-Jul-02 22:59
Daniel Lohmann24-Jul-02 22:59 
GeneralDll error Pin
suresh_sathya24-Jul-02 1:16
suresh_sathya24-Jul-02 1:16 
GeneralRe: Dll error Pin
Nish Nishant24-Jul-02 1:26
sitebuilderNish Nishant24-Jul-02 1:26 
GeneralRe: Dll error Pin
KarstenK24-Jul-02 1:34
mveKarstenK24-Jul-02 1:34 
GeneralTooltips in win32 ... Pin
Neha24-Jul-02 1:15
Neha24-Jul-02 1:15 
GeneralRe: Tooltips in win32 ... Pin
Fortran24-Jul-02 7:49
Fortran24-Jul-02 7:49 
GeneralRe: Tooltips in win32 ... Pin
jwarns1322-Oct-02 2:26
jwarns1322-Oct-02 2:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.