Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpExRt 461 of 696 menu
◀ ▶

Повторный бросок в C++

Повторный бросок - это throw; без выражения внутри активного блока catch.

Такой оператор заново поднимает то же исключение, что уже перехвачено. Удобно добавить локальную очистку и отдать ошибку вызывающему коду. Соберем двухуровневый перехват с выводом сообщения во внешнем main:

#include <iostream> #include <stdexcept> #include <string> void relay() { try { throw std::runtime_error("relay fault"); } catch (...) { throw; } } int main() { try { relay(); } catch (const std::exception& err) { std::cout << err.what() << "\n"; } return 0; }

Объявите void step(), бросающую std::runtime_error с текстом "step", перехватывающую ее и снова бросающую через throw;. В main выведите what.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить