Никак не могу понять смысл и принцип работы Try-catch-throw. Читал в книге - не в вник, шастал по сайтам из Google - не вник. У меня есть ряд вопросов относительно этих (или этого) блока. Может быть, здесь есть хорошо умеющие с этим управляться люди, которые не поленятся объяснить.
1. Допустим, у меня есть 3 вектора, в которых хранятся имена. Пользователю предложено ввести кол-во векторов, данные в которых он хочет увидеть (это специально, чтобы узнать, как работают эти блоки).
код с векторомvector<string> names(3); //вектор
names[0] = "Nameone";
names[1] = "Nametwo";
names[2] = "Namethree";
//ввод
cout << "Введите, сколько нужно вывести данных из вектора names\n";
int inames = 0; //
cin >> inames;
cout << "\n";
//то, что вызывает недопонимание
try {
for (int i = 0; i < inames; i++) {
cout << names[i] << endl; }
}
catch (...) {
cout << "Ошибка 1. Не найден введенный вектор."; }
Например, я ввожу 5 - в итоге сообщается об ошибке системой Windows (так и без try происходит), а не программой. Я думал, что try предназначен именно для этого, чтобы, например, если пользователь введет значение, ведущее к ошибке, программа не завершалась, а сообщала об ошибке. Думается мне, что представление моё неправильно.
2. Можно простой пример работы try-catch-throw, где в тип string вводится int и сообщается об ошибке?
3. Если у вас есть педагогический талант, не могли бы вы объяснить, верно ли мое представление об этой функции и где можно было бы узнать о ней поподробнее (новичок).