Re: Набор исключений метода
От: kov_serg Россия  
Дата: 14.06.18 18:35
Оценка:
Здравствуйте, developer, Вы писали:

D>Привет всем.


D>У меня такой вопрос — в проекте становится до фига исключительных ситуаций. Например, есть сложный метод, который уже кидает кучу разных исключений. Конечно есго можно разбить на несколько методов и упростить, но вопрос не в этом. Как организовать все эти исключения различных методов в проекте?


D>Более конкретно:

D>Стоит ли использовать исключения, которые не унаследованы от std::exception?
D>Стоит ли наследовать все исключения от какого-то одного класса, например, от std::runtime_error — чтобы иерархия исключений имела один единственный корень?
D>Стоит ли как-то сгруппировать исключения в группы (т.е. для каждого метода своя группа исключений)?
D>Иногда бывает одинаково уместно или вернуть false или кинуть исключение — что предпочесть?
void panic();

void smart_fn() {
  try { timid_fn(); } catch(...) { panic(); }
}

void panic() {
  try { throw; }
  catch(A &a) { ... throw "A"; }
  catch(B &b) { ... throw "B"; }
  catch(C &c) { if (!ignore_c) throw; }
  catch(std::exception &e) { ... }
  ... // еще 100500 разных вариантов
  catch(...) { real_panic(); }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.