Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2011, 13:32   #1
NikkMih
 
Регистрация: 29.05.2010
Сообщений: 7
По умолчанию Не работает обработка исключений

Чего-то не пойму. У меня С++ Builder 6 на XP. Пишу код типа:
Код:
int a1 = 6, a2 = 0, res;
try
{
res = a1/a2;
}
catch (EDivByZero)
{
ShowMessage("Деление на ноль");
res = -1;
}
Label1->Caption = IntToStr(res);
Этот код выполняется при нажатии на кнопку на форме.
При этом программа завершается и выводится исключение, так как будто вообще нет обработчика. Также и с другими исключениями. Почему исключения не отлавливаются?

Последний раз редактировалось Stilet; 18.09.2011 в 16:05.
NikkMih вне форума Ответить с цитированием
Старый 18.09.2011, 13:41   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А вы как запускаете? Из C++ Builder? Или из проводника?Потому как если из билдера, то он ловит исключения раньше чем ваш код, поэтому и выдаёт их.
_-Re@l-_ вне форума Ответить с цитированием
Старый 21.09.2011, 13:46   #3
NikkMih
 
Регистрация: 29.05.2010
Сообщений: 7
По умолчанию

Спасибо, разобрался. Если запускаешь exe-шник из проводника всё работает.
NikkMih вне форума Ответить с цитированием
Старый 14.12.2011, 15:35   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вот что значит поиском по форуму воспользоваться.
_-Re@l-_
Большое спасибо. У меня на Delphi была аналогичная ситуация.
Поведение было аналогичным тому, что было написано в первом посте, кстати, код был такой (я тоже разибрался с исключениями и почему они не работают
Код:
procedure TForm1.Button1Click(Sender: TObject);
var d, x:extended;
begin

   try
       d:=-1;
       x:=sqrt(d);
   except
       on EInvalidOp do
           ShowMessage('Так нельзя')
       else
           ShowMessage('хелоу ворд');
   end;

end;
Кстати, взято отсюда http://www.interface.ru/home.asp?artId=21193
автор статьи - модератор нашего форума гру3ин (я лишь только изменил несколько строчек)

ИМХО, программу, где применяется обработка исключений, неудобно отлаживать в среде, поскольку в программе, запущенной в билдере, как выше установили, исключения не обрабатываются.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка исключений Ckomoroh Общие вопросы Delphi 6 21.03.2011 08:52
обработка исключений user666 Помощь студентам 36 27.08.2010 18:00
Обработка исключений _-Re@l-_ Общие вопросы Delphi 3 17.06.2010 08:53
обработка исключений scray PHP 3 15.05.2010 15:02
Обработка исключений try... except Kati Помощь студентам 5 07.03.2010 10:18