Product* p = NULL; try { p = new Product(); if (p->read()) { ... } delete p; } catch(...) { delete p; throw; }