Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исключения, Имеет ли смысл? 
:(
    Опции темы
Jcs
Дата 29.1.2004, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 1.10.2003

Репутация: нет
Всего: нет



Скажите, насколько часто вы используете исключения? Не добавляют ли они больше проблем, чем преимуществ (раздувание кода, быстродействие)? Или они должны использоваться только в самых крайних случаях? Стоит ли при их использовать, если возможна запись по нулевому поинтеру, или следует использовать обычную проверку (к примеру, при реализации пользовательского списка)? Заранее спасибо.
PM   Вверх
NiJazz
Дата 29.1.2004, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Цитата
Скажите, насколько часто вы используете исключения?

Как очевидно их преимущество.

Цитата
Не добавляют ли они больше проблем, чем преимуществ (раздувание кода, быстродействие)?

Нет. Наоборот - помогают их решить.

Исключения - это уже с появления ООП. То есть та же Windows работает не без них.
PM MAIL   Вверх
Vyacheslav
Дата 29.1.2004, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Обычная практика. С использованием исключений код становится более прозрачным и лаконичным


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 29.1.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



иключения по своей сути задумывались как упрощенная система отлова ошибок и обработки их...
ну и имхо очень удобная получилась система ) часто использую в больших программах, в мелких не имеет смысла.


--------------------
PM MAIL WWW ICQ   Вверх
RAN
Дата 29.1.2004, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Я программирую, основываясь на двух довольно удобных изобретениях в ООП - исключения и смарт-поинтеры. Первые позволяет легко генерировать и обрабатывать ошибки, а вторые, при этом, позволяют избежать утечек памяти. Всё это делает код очень понятным и небольшим.

Но при этом я против использования исключений в штатных случаях. Исключения - это ошибки или другие исключительные ситуации. Если исключения использовать часто, для выхода из вложенных циклов, или ещё каких вещей, то это только усложнит программу. Но, это только, моя позиция.
PM MAIL ICQ   Вверх
Step
Дата 29.1.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



RAN, напиши статейку для факю "исключения и смарт-поинтеры"


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
RAN
Дата 29.1.2004, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Step, не раньше выходных. Но сделаю, раз считаете нужным.
PM MAIL ICQ   Вверх
Vyacheslav
Дата 29.1.2004, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Если кому интересно, вот дискуссия по данному вопросу, которая проходила на одном из форумов
http://borland.xportal.ru/forum/viewtopic.php?t=6613


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Step
Дата 29.1.2004, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



RAN, нужно, пиши и отправляй мне или любому модератору по факю с++...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
C'hoosen++
Дата 29.1.2004, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 21.1.2004

Репутация: нет
Всего: нет



Я исключения использую редко, и действительно, чем больше программа,
тем больше используешь исключения.
PM MAIL   Вверх
Jcs
Дата 30.1.2004, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 1.10.2003

Репутация: нет
Всего: нет



Можно ли задать пользовательский абстрактный тип исключения? Например, запись по нулевому указателю или по отрицательному индексу, чтобы далее генерировал их не сам юзер, а приложение?
Хотя в этом случае, наверное, язык уже будет высокоуровневым..
PM   Вверх
Vyacheslav
Дата 30.1.2004, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Что значит "не сам юзер, а приложение?". Исключение генерит всегда именно приложение, а не пользователь. И что такое "абстрактный тип исключения"?


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 30.1.2004, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Цитата
Исключение генерит всегда именно приложение, а не пользователь

Наверное, он имел в виду оператор throw.
PM MAIL   Вверх
Jcs
Дата 30.1.2004, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 1.10.2003

Репутация: нет
Всего: нет



Я имею в виду возможность пользователя описать не конкретный случай исключительной ситуации, как например
Код

...
if(!ptr) throw null_ptr;
...

, а саму ситуацию, чтобы приложение само определяло, что есть попытка обратиться по нулевому адресу и генерило соответствующее описанное пользователем исключение. В общем, чтобы пользователю не надо было проверять указатели на ноль, если данный кусок кода находится в критической секции и ситуация обращения по нулевому указателю была описана как исключительная.
PM   Вверх
bel_nikita
Дата 30.1.2004, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Jcs
не совсем въехалsmile.gif, но по-ходу перегрузи оператор ->. И если идет обращение к нулевому поитеру генери исключение.


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0859 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.