Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Декларации throw - есть ли смысл? 06.03.09 14:46 Число просмотров: 2333
Автор: Heller <Heller> Статус: Elderman
|
Вычитал недавно где-то рекомендацию использовать декларации throw "на всякий случай". Ранее я о них просто не знал, поэтому не юзал, а тут начал применять. Речь идет о таких объявлениях:
bool empty() throw();
Я вот начал их использовать, но по-правде говоря не вижу большого в них смысла. Какое ваше мнение на этот счет? Стоит ли по каждому поводу лепить throw(...)? Очень многие функции работают с динамической памятью и эксепшены могут теоретически вылетать очень запросто. С другой стороны если памяти перестало хватать - ситуацию уже вряд ли спасешь эксепшенами, и можно вывалиться в unexpected(). Или другая ситуация: функция не должна выкидывать эксепшены, но теоретически где-то у нее внутри есть операции с указателями, и в качестве "невозможной ситуации" вполне может вылететь эксепшн при использовании, например, нулевого указателя.
То есть получается, что с одной стороны, если честно объявлять как throw(...) все функции, которые умеют чисто физически выкидывать эксепшены, то приедется так объявлять 99% всего что пишешь. Мне конечно не сложно, но однако ж. Если же игнорить потенциальные ошибки с указателями и динамической памятью - теряется вообще смысл в эксепшенах и потенуиальные падения системы, которые даже толком потом и не отловишь.
В общем, я в замешательстве. Что скажете?
|
- [C++] Декларации throw - есть ли смысл? - Heller 06.03.09 14:46 [2333]
|
|
|