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

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

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

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

27.05.2014, 18:03. Просмотров 258. Ответов 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;
}
Вот мой вариант, но не рабочий
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 18:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поймать exception, который вылетает при доступе к элементу пустого вектора (C++):

Вылетает программа при удалении элемента вектора - 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
шКодер самоучка
1825 / 1627 / 592
Регистрация: 09.10.2013
Сообщений: 3,634
Записей в блоге: 6
Завершенные тесты: 2
27.05.2014, 18:16 #2
http://www.cplusplus.com/reference/v...ector/operator[]/
operator[] не вызывает исключений, поведение при доступе вне размера не определено
те блок try - catch тут не работает и нужно проверять индекс в ручную перед доступом к элементу
0
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
27.05.2014, 18:18 #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;
}
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
27.05.2014, 18:21 #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
0
andryuha_st
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 2
27.05.2014, 19:32  [ТС] #5
0x10, спасибо, заработало )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 19:32
Привет! Вот еще темы с ответами:

При доступе к DLL API access violation exception - C++ WinAPI
Доброго времени суток. Я пытаюсь использовать API сторонней ноунейм DLL. Есть абстрактный класс с чисто виртуальными методами API....

Ошибка при доступе к элементу массива - JavaScript
Из-за чего эта ошибка? ошибка в этой строке cell=0;

Потокобезопасность при доступе к элементу управления - C#
Ребят, сделал приложение, но проблема в том что вылетает ошибка, &quot;доступа к элементу управления не из того потока, в котором он был...

PostgreSQL При настройке log4j для jdbc вылетает exception - Java БД
Моя цель - настроить логирование с сохранением в базу данных. Использую log4j. Вот сам аппендер, который у меня получился: &lt;JDBC...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.05.2014, 19:32
Ответ Создать тему
Опции темы

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