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

Блок try и catch в C++

Опасный участок можно не ронять всю программу. Его ставят в try: это попытка выполнить команды. Если случится сбой, выполнится catch - реакция на ошибку:

int main() { try { // код, который может сорваться } catch (const std::exception& e) { // реакция на сбой } return 0; }

Обратимся к элементу вектора по неверному индексу без обработки - программа упадет. С catch можно вывести текст ошибки через e.what():

int main() { std::vector<int> vec = {1, 2, 3}; try { std::cout << vec.at(10) << "\n"; } catch (const std::exception& e) { std::cout << e.what() << "\n"; } return 0; }

Если в try исключения не было, блок catch пропускается. После пары try-catch выполнение идет дальше, как после обычной команды:

int main() { std::vector<int> vec = {5, 6, 7}; try { std::cout << vec.at(0) << "\n"; } catch (const std::exception& e) { std::cout << e.what() << "\n"; } std::cout << "done\n"; // выведет done return 0; }

Переменная в catch хранит объект исключения. Базовый тип std::exception дает метод what() с текстом, который сформировала библиотека.

Дан вектор целых чисел из трех элементов. Выведите элемент с индексом 10. Если обращение сорвалось, выведите текст ошибки в консоль.

Дан вектор целых чисел. Запросите у пользователя индекс. Выведите элемент по этому индексу в try. При ошибке выведите e.what().

Дана строка str. Преобразуйте ее в целое число через std::stoi в блоке try. При ошибке выведите e.what().

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