Проблема заключается в том, что выход за границы вектора не является исключением типа std:ut_of_range. Вместо этого, это приводит к неопределенному поведению программы.
Чтобы перехватить эту ошибку, вы можете использовать стандартное исключение std::exception. Вот как это можно сделать:
using std::cin; using std::cout; using std::endl; using std::vector;
int main()
{
vector<int> input;
try
{
int i;
while (cin >> i) input.push_back(i);
for (int i = 0; i <= input.size(); ++i)
{
cout << "v [" << i << "] - " << input.at(i) << "n"; // используем метод at() для доступа к элементам вектора
}
cout << endl;
}
catch (const std::exception& e) { // перехватываем исключение типа std::exception
cout << "Error: " << e.what() << endl; // выводим сообщение об ошибке
return 1;
}
return 0;
}
В этом коде мы используем метод at() для доступа к элементам вектора, который генерирует исключение типа std:ut_of_range, если индекс находится за пределами диапазона вектора. Мы также перехватываем исключение типа std::exception, чтобы обработать любые другие исключения, которые могут возникнуть в программе.