Ответ - да, очень вероятно. Вы никогда не должны бросать объекты, созданные с new
. Вместо этого выведите значения:
throw CustomException(errorMessage);
и поймать, используя константные ссылки:
try {
...
}
catch( const CustomException & e ) {
...
}
Бросающие значения означают, что компилятор обрабатывает время жизни брошенного объекта. Кроме того, в вашем коде может возникнуть другая проблема, если конструктор копирования для вашего класса исключений неверен - однако это не имеет ничего общего с обработкой исключений.