Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.013 c
3-52763
dsv
2003-01-30 09:39
2003.02.17
Несовместимость настроек


3-52707
b_baranov
2003-01-31 20:02
2003.02.17
Объединение таблиц


3-52801
kaif
2003-01-31 14:01
2003.02.17
Нумерация строк TDataSet.


14-53270
Jaxtor
2003-01-28 12:44
2003.02.17
Где просмотреть значение WM_USER + константа?


1-52830
Checist [root]
2003-02-07 10:51
2003.02.17
Запрет на копирование