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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Exceptions handling, Вопрос по C++ Builder 
:(
    Опции темы
Кирилл
Дата 22.3.2004, 15:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вопрос тем, кто сталкивался с проблемами обработки исключений в C++ Builder 6.

Кратко :

// максимально примитивный кусок кода
try{
throw 1;
}catch(int err){
printf("%d",err);
}
// ошибиться негде !

При первом запуске на строку 'throw 1;' указывает runtime error 'Exception Object Address:0x844A16' при следующем всё работает как должно .

ПОЧЕМУ ??? (и что делать :)

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

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

Что может послужить причиной неявного (нигде не меняю его явно) изменения указателя ?
  Вверх
Vyacheslav
Дата 22.3.2004, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если запускаешь под IDE, то все так и должно быть. На
throw 1;
IDE просто демонстрирует где и какое исключение сгенерилось, запускаешь дальше - оно соответственно ловится. Запусти этот прогрмму без IDE и все сработает как надо.
Цитата

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

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

Здесь телепатов нет. Давай конкретный код, тогда посмотрим


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


Java-ненавистник :)
****


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

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



В IDE можно отключить эту опцию.
Tools -> Debugger Options... -> Language Exceptions
А там есть: Stop on Delphi Exceptions и Stop on C++ Exceptions.
Сними галочки и проверь.

Что касается второго вопроса (только не говорите об этом модератору smile.gif ), то тут действительно нужно описать проблему поконкретней.



--------------------
Да. Именно так.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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