Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизМастера - подскажите о raise ? Найти похожие ветки
← →
Альф (2003-02-06 15:20) [0]При вызове
raise EMyException.Create("Ошибка")
как я понимаю создается объект классаEMyException
а вот интересует, когда он удаляется ???
И что с ним делается при:
try
???
..
raise EMyException.Create("Ошибка");
..
except
end;{}
← →
Mike_Goblin (2003-02-06 15:35) [1]Удаляется автоматически после того как исключительная ситуация будет обработана.
← →
Альф (2003-02-06 15:44) [2]2Mike_Goblin © (06.02.03 15:35)
А нескромный вопрос можно ?
Кем удаляется ???
← →
Roma (2003-02-06 15:47) [3]>Альф © (06.02.03 15:20)
А вот в блокеtry...except
этот объект - исключение типа EMyException - и должен обработаться... А после обработки он автоматически удалится. Т.е., в данном конкретном случае вообще ничего не произойдет ;) - исключение не обрабатыватся в блоке try...except, но автоматически удалится.
А если так:
try
...
raise EMyException.Create("Ошибка!!!");
...
except
on E: EMyException do
ShowMessage(E.Message);
end; // except
то исключение типа EMyException обработается (здесь - просто выведется сообщение "Ошибка!!!") и удалится. А исключения других типов - EInOutError, EOverflow, EZeroDivide и т.д. и т.п. - будут перехвачены и обработаны не тобой, а стандартным обработчиком исключений в Application, где и удалятся...
← →
Игорь Шевченко (2003-02-06 16:01) [4]Альф © (06.02.03 15:44)
> Кем удаляется ???
Обработчиком исключительной ситуации
← →
Альф (2003-02-06 16:07) [5]Спасибо :)
← →
jack128 (2003-02-06 16:14) [6]а если блока try except end вообще нет где эта исключительная ситуация обрабатывается?
← →
Романов Р.В. (2003-02-06 16:20) [7]
> jack128 © (06.02.03 16:14)
> а если блока try except end вообще нет где эта исключительная
> ситуация обрабатывается?
Ну вы же видите сообщение "AV в ..." или "Деление на ноль".
ЗЫ: Если сообщения нет то все равно обрабатывается
← →
Внук (2003-02-06 16:23) [8]>>jack128 © (06.02.03 16:14)
Любая стандартная программа на Delphi - это один большой неявный try ... except, поэтому здесь все обработается на том или ином уровне.
А вообще необработанное исключение (если они не может быть обработано даже на уровне ядра) приводит к остановке ОС. В случае NT это всеми любимый BSOD.
← →
Альф (2003-02-06 16:25) [9]Прошу прощения - jack128© - это не я :)
2Внук © (06.02.03 16:23)
:)))
← →
Roma (2003-02-06 16:27) [10]>jack128 © (06.02.03 16:14)
В Application...
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.015 c