Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
#1

Не ловится исключение - C++

02.05.2013, 13:37. Просмотров 376. Ответов 6

Здравствуйте, есть такой метод:
C++
1
2
3
4
5
6
7
8
9
bool Library::Remove(unsigned int bookNumber) {
    try {
        bookCollection.erase(bookCollection.begin() + bookNumber);
        return true;
    }
    catch(...) {
        return false;
    }
}
Пусть в bookCollection(вектор) у меня пусто. Если я передам в bookNumber, например, 5, метод должен вернуть false. Но на самом деле приложение крашится с таким сообщением: vector iterator + offset out of range.
Не подскажете, что не так? Мне надо, что бы исключение поймалось и метод вернул false.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2013, 13:37     Не ловится исключение
Посмотрите здесь:

Не ловится исключение - C++
Не ловится исключение, если нет интернет-соединения... Или при этом вовсе не исключение возникает?.. try { ...

исключение - C++
Првиет. Почему не работает такая конструкция? #ifndef TREEEXCEPTION_H #define TREEEXCEPTION_H #include <exception> #include...

исключение в if - else - if - C++
Получает беру отрезок от -10 до 10,шаг 1,вычисляется 2-й вариант и получается 1 ра з деление на нуль,я делаю исключение ,но не выдаёт...

Исключение - C++
Здравствуйте, помогите вставить в эту задачу исключения (числа не должны быть меньше равны 0). Задание вроде и не сложное но при...

Выкидывает исключение - C++
Вызвано исключение по адресу 0x000000013F292F77 в ConsoleApplication2.exe: 0xC0000005: нарушение прав доступа при записи по адресу...

Необработанное исключение - C++
Здравствуйте! При полном заполнении массива пятью значениями, программа зависает ненадолго, и выскакивает ошибка (см.вложение). Такжево...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
02.05.2013, 13:49     Не ловится исключение #2
dev.nikor, странно.. Попробуй отдельно инициализировать итератор?
Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
bool Library::Remove(unsigned int bookNumber) {
// здесь создаешь итератор (назовем его i)
    try {
i = bookCollection.begin() + bookNumber; //
        bookCollection.erase(i); //
        return true;
    }
    catch(...) {
        return false;
    }
}
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
02.05.2013, 13:57     Не ловится исключение #3
А с чего бы тут вообще должно быть исключение?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
02.05.2013, 14:07     Не ловится исключение #4
Somebody, а разве при уходе за границе не кидается исключение у std-контейнеров?
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
02.05.2013, 14:11  [ТС]     Не ловится исключение #5
nexen, не работает

Somebody, а что тут тогда?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.05.2013, 14:15     Не ловится исключение #6
Цитата Сообщение от nexen Посмотреть сообщение
а разве при уходе за границе не кидается исключение у std-контейнеров?
кидается только при использовании метода at
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2013, 14:28     Не ловится исключение
Еще ссылки по теме:

Необработанное исключение - C++
Доброго времени суток. Ошибка: Необработанное исключение типа "System.Resources.MissingManifestResourceException" в mscorlib.dll ...

Неперехваченное исключение - C++
Доброго времени суток, форумчане. Изучая C++ по книге "Принципы и практика с использованием C++", наткнулся на такое задание: Д ля того...

Необработанное исключение - C++
Здравствуйте. Нужно добавить в готовый класс свои функции из предыдущих работ. Все добавил, но при вызове функции "cdd" вылезает ошибка...

Необработанное исключение - C++
есть программный код на поиск самой длинной последовательности чисел в файле с последующим её копированием в другой файл #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
02.05.2013, 14:28     Не ловится исключение #7
А тут вроде бы так: + эквивалентен ++ в цикле, ++ можно применять только к dereferenceable итераторам, а тут это не выполняется, когда доходит до конца контейнера.
Yandex
Объявления
02.05.2013, 14:28     Не ловится исключение
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru