Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обработка исключений
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
Roklan
Всем привет.
Вот у меня такой вопрос, я раньше особо не использовал исключения, потому как не мог разобраться в сути!

 int a, b ,c;
  a = StrToInt(Edit1->Text);
  b = StrToInt(Edit2->Text);
  struct ZeroDivide {};
  if (b == 0) throw ZeroDivide();
  try {
    c = a / b;
  }
  catch(ZeroDivide) {
   Application->Terminate();
  }
  Edit3->Text = IntToStr©;


Это обработчик кнопки. Как мне кажется, в случае ввода b = 0, здесь должно сгенерироваться исключение деления на ноль, типа пустой структуры ZeroDivide(я читал что так делают, то есть по сути тип искл. не важен). Только здесь всеравно происходит обрушение программы(((
Объясните кто-нибудь плиз. что не так??
Morpheus
Для: Roklan
видимо тоже самое что и ]]>тут]]>
sax_ol
Цитата(Roklan @ 4:02:2008, 18:56 )
потому как не мог разобраться в сути

Это как?
что тут разбирать ... все очень просто
искючения можно поймать, только в области "защищенного" кода, т.е. под try и только ...
Roklan
Morpheus
Да, exe работает, только я не нашел такого пункта Stop on Delphi Exceptions
в данном подменю.

И в exe выводится окно с "External exeption EEFFACE", если у меня есть оператор throw ZeroDivide();, а если я его закоментирую, то выводится "Division by Zero".
А если вообще поставить ... в catch, то заработает мой обработчик. Что же получается, мой обработчик обрабатывает не деление на ноль??
gamecreator
оператор throw должен быть внутри try
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.