Перечитайте повнимательнее свой код, особенно объявление автоматической переменной, присвоение ей указателя, catch(...) без throw
Хотя это гавно просто не скомпилируется.
Про элегантность — нормальный такой вброс.
У ТС был нормальный рабочий код.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.