catch (char* errorStr) { SDL_FreeSurface (m_Background); while (m_IconList.size () != 0) { delete m_IconList.back (); m_IconList.pop_back (); } throw (errorStr); } catch (std::bad_alloc) { SDL_FreeSurface (m_Background); while (m_IconList.size () != 0) { delete m_IconList.back (); m_IconList.pop_back (); } throw ((char*) "Out of memory\n"); }