Обработка исключений

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем Roklan, 4 фев 2008.

Статус темы:
Закрыта.
  1. Roklan

    Roklan Гость

    Всем привет.
    Вот у меня такой вопрос, я раньше особо не использовал исключения, потому как не мог разобраться в сути!

    Код (Text):
     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(я читал что так делают, то есть по сути тип искл. не важен). Только здесь всеравно происходит обрушение программы(((
    Объясните кто-нибудь плиз. что не так??
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Roklan
    видимо тоже самое что и тут
     
  3. Roklan

    Roklan Гость

    Morpheus
    Да, exe работает, только я не нашел такого пункта Stop on Delphi Exceptions
    в данном подменю.

    И в exe выводится окно с "External exeption EEFFACE", если у меня есть оператор throw ZeroDivide();, а если я его закоментирую, то выводится "Division by Zero".
    А если вообще поставить ... в catch, то заработает мой обработчик. Что же получается, мой обработчик обрабатывает не деление на ноль??
     
  4. gamecreator

    gamecreator Гость

    оператор throw должен быть внутри try
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей