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

Исключения, возвращающие данные из фукнции - C++

Восстановить пароль Регистрация
 
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
12.09.2009, 08:34     Исключения, возвращающие данные из фукнции #1
[c++] исключенеия возвращающие данные из фукнции

допустим есть контейнер exc_vector, который бросает исключения при обращении к несуществующему элементу:

как может различаться по производительности код:
C++
1
2
3
4
5
6
7
int d=v.size();
for(int i=0;i<d;i++) sum+=v[i];
// и
try{
 while(1) sum+=v[i++];
}
catch(range ) { }
почему обычно не используется 2й вариант кода?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.09.2009, 09:04     Исключения, возвращающие данные из фукнции #2
Цитата Сообщение от _mayor Посмотреть сообщение
почему обычно не используется 2й вариант кода?
кто это тебе сказал? где не используется, в книгах? в учебных примерах?
***
если исключение не будет перехвачено - программа завершится.
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
12.09.2009, 10:58  [ТС]     Исключения, возвращающие данные из фукнции #3
Цитата Сообщение от zim22 Посмотреть сообщение
кто это тебе сказал? где не используется, в книгах? в учебных примерах?
***
если исключение не будет перехвачено - программа завершится.
ну покажи пример реального боевого кода, где такое используется
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
12.09.2009, 12:32     Исключения, возвращающие данные из фукнции #4
где используется что? обработка исключений?
http://koders.com/default.aspx?s=cat...&la=Cpp&li=%2A
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
12.09.2009, 15:08     Исключения, возвращающие данные из фукнции #5
_mayor,
Цитата Сообщение от Агуров. C# Сборник рецептов
12.4 Не используйте исключения, если это возможно
Генерация исключения является чрезвычайно длительной операцией. Не следует применять исключения, если без них можно обойтись. Например, код
C#
1
2
3
4
5
6
7
8
try
{
    return b/c;
}
catch (DivideByZeroException)
{
    return 0;
}
вполне можно переписать без использования исключений:
C#
1
2
3
if (c==0)
    return 0;
return b/c;
Для С++ это тоже остается истинно. Делай выводы сам, я ничего не утверждаю, но я лично исключениями редко пользуюсь
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
13.09.2009, 18:58  [ТС]     Исключения, возвращающие данные из фукнции #6
zim22, обработка исключений, в условиях когда хватает локальных данных для for\if

Добавлено через 1 минуту
Цитата Сообщение от M128K145 Посмотреть сообщение
_mayor,
Для С++ это тоже остается истинно. Делай выводы сам, я ничего не утверждаю, но я лично исключениями редко пользуюсь
а если альтернатива:
миллион проверок переменной в цикле
или проброс 1го исключения?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2009, 19:22     Исключения, возвращающие данные из фукнции
Еще ссылки по теме:

Написать подпрограммы, возвращающие новый список L, включающий в себя предыдущие C++ Builder
C++ Исключения
C++ Массив указателей на функции, возвращающие значения разного типа
Как в данной ситуации использовать функции, получающие и возвращающие различное количество аргументов? C++
C++ Дважды вычислить значение выражения, используя функции возвращающие void и не void

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16935 / 5340 / 328
Регистрация: 30.03.2009
Сообщений: 14,354
Записей в блоге: 26
13.09.2009, 19:22     Исключения, возвращающие данные из фукнции #7
Цитата Сообщение от _mayor Посмотреть сообщение
а если альтернатива:
миллион проверок переменной в цикле
или проброс 1го исключения?
Прежде, чем бросить исключение, делается проверка, а нужно ли его делать - а это как минимум то же самое сравнение, которого ты пытаешься избежать (выполняется внутри перегруженного оператора [] для твоего класса exc_vector). К тому же реализация проброса исключения в теории может занять дополнительный миллион тактов, которые ты хотел сэкономить (но на самом деле не сэкономил)
Yandex
Объявления
13.09.2009, 19:22     Исключения, возвращающие данные из фукнции
Ответ Создать тему
Опции темы

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