Код: Выделить всё
try { do_stuff(); }
catch(my_exception_class& e) {
if (not can_ignore_exception(e)) {
throw(e);
}
log_or_do_nothing(e);
}
Выражение Throw можно заменить выражением rethrow
и, действительно, его можно заменить - вот так:
Код: Выделить всё
try { do_stuff(); }
catch(my_exception_class& e) {
if (not can_ignore_exception(e)) {
std::rethrow_exception(std::current_exception());
}
log_or_do_nothing(e);
}
Примечание. Код написан как минимум на C++11 и может использовать или не использовать более поздний стандарт. Если ваш ответ касается нового стандарта C++, укажите какой именно.
Подробнее здесь: https://stackoverflow.com/questions/798 ... hrowing-it
Мобильная версия