Страницы

Поиск по вопросам

среда, 24 апреля 2019 г.

Обработка исключений с++

Как обработать исключение, которое возникает при попытке инициализировать значение за пределами массива, или при чтении из-за его пределов. Пробовал в catch писать "exception e", но оно не ловит.


Ответ

если это встроенный c++ массив то можно ставить ассерты перед каждым доступом к его элементу -
#define array_size 100 int v[array_size];
int i = 100; assert(i >= 0 && i < array_size); // бросит исключение v[i] = 123;
если у вас std::vector
то как уже сказали в комментариях - воспользоваться функцией членом std::vector::at которая гарантированно бросит исключение при выходе за пределы вектора.
std::vector v(5); v.at(5) = 1.0f; // бросит исключение

Комментариев нет:

Отправить комментарий