Здравствуйте, Аноним, Вы писали:
А>И? Почему по ссылке а не по указателю?
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 страница).