| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Exceptions handling |
| Автор: Кирилл 22.3.2004, 15:53 |
| Вопрос тем, кто сталкивался с проблемами обработки исключений в 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 | ||
| Если запускаешь под IDE, то все так и должно быть. На throw 1; IDE просто демонстрирует где и какое исключение сгенерилось, запускаешь дальше - оно соответственно ловится. Запусти этот прогрмму без IDE и все сработает как надо.
Здесь телепатов нет. Давай конкретный код, тогда посмотрим |
| Автор: Дрон 22.3.2004, 16:50 |
| В IDE можно отключить эту опцию. Tools -> Debugger Options... -> Language Exceptions А там есть: Stop on Delphi Exceptions и Stop on C++ Exceptions. Сними галочки и проверь. Что касается второго вопроса (только не говорите об этом модератору |