crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> выход индекса за пределы дозволеного, философия
Litkevich Yuriy
  опции профиля:
сообщение 21.4.2010, 11:57
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


у меня возник вопрос - "а хорошо ли программе падать?"

Есть перегруженный оператор [], в него передаётся индекс, и внутри оператора сделан assert на случай выхода индекса за границы разрешённого диаппазона.

Вроде так многие делают. Но правильно ли это?

Может правильнее поступать как-то иначе?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 23.4.2010, 11:41
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Влад @ 23.4.2010, 15:24) *
в release версии он раскрывается в "ничто" и исключается компилятором. Нет?
Q_ASSERT в релизной работает. если я программу из командной строки запускаю (в виндовозе), то при падении вижу сообщение с номером строки исходника и текстом условия, которое проверялось
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 23.4.2010, 11:44
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 23.4.2010, 12:41) *
Цитата(Влад @ 23.4.2010, 15:24) *
в release версии он раскрывается в "ничто" и исключается компилятором. Нет?
Q_ASSERT в релизной работает.

Вы о разных assertax говорите. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   выход индекса за пределы дозволеного, философия   21.4.2010, 11:57
- - DIMEDROLL   Цитата(Litkevich Yuriy @ 21.4.2010, 11:57...   21.4.2010, 12:05
- - Litkevich Yuriy   вообще я всюду стараюсь использовать не просто int...   21.4.2010, 12:41
- - BRE   IMHO, в операторе [] выход за пределы контейнера э...   21.4.2010, 13:01
- - Litkevich Yuriy   в случае источником индекса со стороны пользовател...   21.4.2010, 13:10
- - BRE   Все внешние данные, не важно откуда они приходят, ...   21.4.2010, 13:21
- - Tonal   Цитата(Litkevich Yuriy @ 21.4.2010, 16:41...   22.4.2010, 7:27
- - Iron Bug   Цитата(BRE @ 21.4.2010, 16:01) IMHO, в оп...   22.4.2010, 8:35
|- - BRE   Цитата(Iron Bug @ 22.4.2010, 9:35) вот то...   22.4.2010, 9:01
- - Litkevich Yuriy   Другими словами Assert внутри оператора [], это вп...   22.4.2010, 11:31
- - Andrewshkovskii   Я так понял что BRE предлагает использовать провер...   22.4.2010, 12:10
- - Litkevich Yuriy   это-то понятно. Я для случая, если всё таки прозив...   22.4.2010, 12:18
|- - BRE   Цитата(Litkevich Yuriy @ 22.4.2010, 13:18...   22.4.2010, 12:29
- - Andrewshkovskii   А как ты можешь прозевать фиктивный индекс? Всмысл...   22.4.2010, 12:26
- - Iron Bug   имхо ассерты только для дебага. ну, в крайнем случ...   22.4.2010, 13:20
|- - Влад   Цитата(Iron Bug @ 22.4.2010, 13:20) имхо ...   23.4.2010, 11:24
- - Litkevich Yuriy   Цитата(Iron Bug @ 22.4.2010, 17:20) а так...   22.4.2010, 13:34
- - Andrewshkovskii   memory access violation ? вот тут обсуждалось   22.4.2010, 13:45
- - Litkevich Yuriy   Цитата(Andrewshkovskii @ 22.4.2010, 17:45...   22.4.2010, 13:47
- - Tonal   В Винде возникает системное исключение STATUS_ACCE...   23.4.2010, 8:46
- - Litkevich Yuriy   Цитата(Влад @ 23.4.2010, 15:24) в release...   23.4.2010, 11:41
|- - BRE   Цитата(Litkevich Yuriy @ 23.4.2010, 12:41...   23.4.2010, 11:43
|- - AD   Цитата(Litkevich Yuriy @ 23.4.2010, 12:41...   23.4.2010, 11:44
- - Litkevich Yuriy   Цитата(BRE @ 23.4.2010, 15:43) Собирай ре...   23.4.2010, 11:45


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 4:04