![]() |
|
|
![]()
|
|
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Объясните пожалуйста принцип действия try catch на этом примере, похоже я его не понимаю
непонятно следующее, я специально пишу в RichEdit имя файла, которого нет, соответственно в строке 7 возникает исключение, но оно не перехватывается блоком catch, выдает стандартное сообщение, а мое сообщение нет, разве три точки не перехватывают любые исключения??? -------------------- |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
не знаю что такое TIdAttachment
может исключение посылается в отдельном потоке? Это сообщение отредактировал(а) korian - 21.10.2008, 22:40 |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
исключения VCL они не перехватывают
по моему, нужно так... Добавлено через 1 минуту и 9 секунд давно не пользовался билдером, но насколько я помню, исключения С++ и исключения VCL (наследники Exception) он перехватывает отдельно Добавлено через 1 минуту и 49 секунд возможно там TException, справки под рукой нет... |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
ну не знаю, покрайней мере так работает:
единственное, под дебагом, перед тем как перейти в catch, выдает сообщение о том что было исключение. |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Lazin, не подходит, а как можно узнать какое исключение возникает? т.е., что писать в скобках у catch?
Добавлено через 2 минуты и 56 секунд korian, я делал так множество раз, все было отлично, но вот в этот раз столкнулся с тем что исключение перехватываю не я. -------------------- |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
даже конкретнее вопрос, увидел, что при появлении сообщения, он выдает class EFOpenError, я пишу:
Добавлено через 1 минуту и 9 секунд Ничего не меняется, что такое, не пойму. Раньше с таким не сталкивался. -------------------- |
|||
|
||||
| Headcrab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.10.2008 Репутация: нет Всего: нет |
catch(...) перехватит любое исключение неважно какого класса. Я сомневаюсь что EFOpenError у вас возникает именно в строке
т.к. там вызывася уонструктор предка (никак не связанный с именм файла) и без всяких проверок присваивается FileName. Скорее всего исключение кидается внутри чтототам->Send(), вот его и нужно окружить try-catch. |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Dmi3ev, выложи весь код - что то не похоже что исключение срабатывает в представленном коде. возможно косяк с настройкой компонета.
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Headcrab, а вот это очень может быть, не обращал внимания, в какой строке ошибка, попробую, отпишусь вечером и выложу код по просьбе mrbrooksа.
-------------------- |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Вот весь код, нашел, где у меня там Send, действительно логично его указать в блоке (по совету Headcrabа) написал вот так:
но ничего не изменилось, в скобках у catch указывал и EFOpenError&, тот же рузультат, исключение обрабатывается не мной, почему??? -------------------- |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Dmi3ev, у тебя исключение срабатывает при запуске из среды или когда ты экзешник запускаешь отдельно?
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
из среды, а что экзешник по другому работает? хотя помню с бд парадоксом была такая штука, что при запуске из среды не фурычило, а экзешник работал идеально, но мне казалось, что глюк парадокса, а не билдера. Запускать экзешник чтоли?
-------------------- |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
а ты проверь Дело все в том что при работе из среды Борман первым обрабатывает исключение и генерит свое предупреждение Поэтому у тебя и не появлялась твоя мессага. А запустив просто ехе-шник из того-же проводника уже сработает твое исключение. Можно отключить эту опцию в Бормане что бы он сам не генерил мессагу - но лучше не стоит. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Да можно и не отключать. Просто нажать Ok (или что там дальше ). Запустить работу дальше и получить свое сообщение -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
вообщем и правда, после запуска экзешника, все стало нормально, но в среде, эти сообщения так и не появились, какие-бы ок на стандартных сообщениях я не нажимал, вообщем буду знать, что борман может и такие шутки выкидывать, вообщем вопрос решен.
-------------------- |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |