Re[2]: Зачем надо throw new CMyException
От: Ведмедь Россия  
Дата: 11.03.03 10:44
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Borisman, Вы писали:


B>>На вопрос, как нужно выбрасывать исключения, есть два мнения:

B>>1) throw CMyException(...)
B>>2) throw new CMyException(...)

B>>

B>>И то и то работает. Но во втоом случае приходится явно удалять экземпляр исключения в секции catch:

ГВ>Угу. Первый чуть медленнее, поскольку выброшенный CMyException будет неявно копироваться при передаче из try-блока в catch.


Не знаю, не проверял, но при втором много потенциальных взможностьей упустить память — пример



try
{
throw new CMyException();
}catch(...)
{
//попасть мы сюда попали, а память освобождать как?
}


Пример несколько надуман, но если нижележащий код кидает в try указатель, а ты об этом не знаешь, то найти этот лик в памяти будет очень проблематично.
Да пребудет с тобой Великий Джа
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.