Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Borisman, Вы писали:
B>>На вопрос, как нужно выбрасывать исключения, есть два мнения: B>>1) throw CMyException(...) B>>2) throw new CMyException(...)
B>> B>>И то и то работает. Но во втоом случае приходится явно удалять экземпляр исключения в секции catch:
ГВ>Угу. Первый чуть медленнее, поскольку выброшенный CMyException будет неявно копироваться при передаче из try-блока в catch.
Не знаю, не проверял, но при втором много потенциальных взможностьей упустить память — пример
try
{
throw new CMyException();
}catch(...)
{
//попасть мы сюда попали, а память освобождать как?
}
Пример несколько надуман, но если нижележащий код кидает в try указатель, а ты об этом не знаешь, то найти этот лик в памяти будет очень проблематично.