Как обработать исключение, которое возникает при попытке инициализировать значение за пределами массива, или при чтении из-за его пределов. Пробовал в 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
Комментариев нет:
Отправить комментарий