Re[3]: Перехват исключения...
От: Qbit86 Кипр
Дата: 01.02.08 23:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>И? Почему по ссылке а не по указателю?


0_о? Возможно я не понял вопроса...
Чтобы перехватить исключение по указателю, то надо сначала сгенерировать исключение-указатель. Собственно, во время ловли у вас нет выбора, перехватывать исключение по указателю или по ссылке. У вас есть альтернатива по значению либо по ссылке.

А>И? Почему по ссылке а не по указателю?


Пусть у вас функция бросает std::runtime_error. Вы можете в скобках catch написать «std::runtime_error e» (что Саттер не советует делать, действительно, зачем вам лишний раз копиктор вызывать) или «std::runtime_error const& e» (что и является общепринятой практикой). «Перехват по указателю» — это что значит? Попытка написать «catch (std::runtime_error const* e)»? Тогда у вас исключение не перехватится, ведь типы «T» и «T const*» — разные.

«const» можно не писать, если собираетесь изменить объект исключения и бросить («throw;» без ничего) его дальше.

Таки советую прочитать эту книгу (всего 200 страниц), или по крайней мере статью (всего 1 страница).
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.