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

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

Войти
Регистрация
Восстановить пароль
 
andryuha_st
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 2
#1

Поймать exception, который вылетает при доступе к элементу пустого вектора - C++

27.05.2014, 18:03. Просмотров 250. Ответов 4
Метки нет (Все метки)

Подскажите как правильно поймать exception, который вылетает при доступе к 1 элементу пустого вектора.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
using namespace std;
 
 
int main()
{
    vector <int> a;
    try{
    cout << a[0];
    }
    catch(bad_alloc &e)
    {
        cerr << e.what();
        return -1;
    }
 
    return 0;
}
Вот мой вариант, но не рабочий
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 18:03     Поймать exception, который вылетает при доступе к элементу пустого вектора
Посмотрите здесь:

Вылетает программа при удалении элемента вектора - C++
Всех с новым годом, уважаемые киберфорумцы! Сделал я на днях класс Button, который, как и положено, представляет из себя кнопку (работаю...

Вылетает на std::length_error exception - C++
название не очень отражает суть вопроса, но лучше я предумать не смог. Есть программа собранная в дебаге (-g) к ней линкуется только одна...

STL . Обращение к 12 элементу вектора - C++
Добрый вечер, форумчане! Столкнулся вот с такой проблемой. Имеется вектор, заполненный числами, огромной длины. Но почему-то не хочет...

Обращение к последнему элементу вектора - C++
Здравствуйте, мне нужно сравнить последний элемент вектора с числом и в зависимости от того, какое это число, выполнить дальнейшие...

Доступ по итератору к элементу вектора - C++
Здравствуйте! Подскажите, пожалуйста, решение данной задачи: Дан вектор типа string, в нем есть два элемента. Необходимо добавить в...

Доступ к элементу вектора строк через геттер - C++
Привет, у меня есть примерно такой класс: class person { private: std::vector&lt;std::string&gt; criterias; public: //.... ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
27.05.2014, 18:16     Поймать exception, который вылетает при доступе к элементу пустого вектора #2
http://www.cplusplus.com/reference/v...ector/operator[]/
operator[] не вызывает исключений, поведение при доступе вне размера не определено
те блок try - catch тут не работает и нужно проверять индекс в ручную перед доступом к элементу
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
27.05.2014, 18:18     Поймать exception, который вылетает при доступе к элементу пустого вектора #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <stdexcept>
#include <vector>
 
using namespace std;
 
 
int main()
{
    vector <int> a;
    
    try {
        cout << a.at(0);
    } catch(const out_of_range& e) {
        cerr << e.what();
    }
 
    return 0;
}
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
27.05.2014, 18:21     Поймать exception, который вылетает при доступе к элементу пустого вектора #4
Я в MS help нашел такое
_SECURE_SCL_THROWS
If defined as 1, an out of range iterator use causes an exception at runtime. If defined as 0, the program is terminated by calling invalid_parameter.
Т.е. где-то надо вставить
C++
1
#define _SECURE_SCL_THROWS 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 19:32     Поймать exception, который вылетает при доступе к элементу пустого вектора
Еще ссылки по теме:

Ошибка при запуске пустого проекта - C++
При запуске пустого проекта выдает ошибку.

Как напрямую обратиться к элементу объекта, который находится в векторе? - C++
Только один вопрос. Как напрямую обратится к элементу объекта, который находится в векторе. Например у нас есть вектор. он хранит...

Указатели и классы: присвоение значения элементу массива, который является полем класса - C++
Доброго времени суток, делал задание, где надо создать класс, полем которого будет массив указателей на другие массивы и перегрузить...

При добавлении пустого конструктора копирования начинается какая-то ерунда - C++
Всем пт! Вот у меня есть такой код: class human { private: int age; public: human (int a) {age = a;}

Доступ к элементам вектора, который находится в map - C++
День добрый! Нужно ваше экспертное мнение. Я создаю map: std::map&lt;unsigned, std::vector&lt;int&gt;&gt; test_1 ; Затем я добавляю...

Изменить значение элемента вектора, на который указывает итератор - C++
Собственно вопрос, возможно ли изменить значение элемента вектора, на который указывает итератор, на значение последнего элемента вектора,...


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

Или воспользуйтесь поиском по форуму:
andryuha_st
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 2
27.05.2014, 19:32  [ТС]     Поймать exception, который вылетает при доступе к элементу пустого вектора #5
0x10, спасибо, заработало )
Yandex
Объявления
27.05.2014, 19:32     Поймать exception, который вылетает при доступе к элементу пустого вектора
Ответ Создать тему
Опции темы

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