Задать вопрос
Nicknu
@Nicknu

Try-catch-throw. Как понять эту схему?

Никак не могу понять смысл и принцип работы 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. Если у вас есть педагогический талант, не могли бы вы объяснить, верно ли мое представление об этой функции и где можно было бы узнать о ней поподробнее (новичок).
  • Вопрос задан
  • 474 просмотра
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (3)