Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

try... except   Найти похожие ветки 

 
Бук   (2003-02-03 07:55) [0]

Привет, мастера! Вот каой вопрос меня мучает. Часть программного кода у меня заключена в болк try... except:

try
Код
except
exit;
end;

Насколько правильной будет строчка после except?
Т. е. выход из процедуры по исключению. Или все же исключения надо обработать?
Спаибо заранее


 
Юрий Зотов ©   (2003-02-03 08:02) [1]

Если нужно - обрабатывайте, если не нужно - не надо.

Выход происходит по НЕОБРАБОТАННОМУ исключению, а в ОБРАБОТАННОМ происходит то, что написано между except и end. В Вашем коде - исключение гасится и происходит нормальный выход.


 
Бук   (2003-02-03 08:05) [2]

Ок. Т. е. он корректный?


 
БИС   (2003-02-03 08:16) [3]

с точки зрения языка вполне
а с точки зрения понимания реакции программы, тут уж каждый сам должен решить


 
Бук   (2003-02-03 08:18) [4]

Ну, мужики, успокоили. Спасибо! :)


 
icWasya ©   (2003-02-03 09:58) [5]

вообще говоря из блока
except
...
end


или из блока
finally
...
end


нельзя делать глобальный переход, т.е. нельзя использовать операторы Exit, а так же Break,GoTo, Continue, если они делают переход к коду вне этого блока.


 
Smithson ©   (2003-02-03 10:05) [6]

Вообще говоря, можно. Это вопрос религиозный и обсуждать его можно с тем же успехом, как и религию.


 
Danilka ©   (2003-02-03 10:12) [7]

А какой смысл в этом exit?


 
uw ©   (2003-02-03 10:42) [8]

>Danilka © (03.02.03 10:12)
После try except end в процедуре вполне мог быть еще код. Другое дело, что его можно было бы вставить в try.



 
DiamondShark ©   (2003-02-03 11:02) [9]


> icWasya © (03.02.03 09:58)


> нельзя делать глобальный переход


Это вы что-то съели.


 
БИС   (2003-02-03 11:03) [10]

если код будет идти после оператора, дающего ошибку, то смысла нету. Лучше уж в finally, но надо быть уверенным, что там тоже ничего такого не возникнет ...


 
Danilka ©   (2003-02-03 11:07) [11]

БИС (03.02.03 11:03)
Исключение не всегда ошибка, или не всегда может рассматриваться как ошибка.


 
Бук   (2003-02-04 06:36) [12]

По поводу обработки исключительных ситуаций с exit в except объясняю: Клиент требует MDI приложение. При этом условие у него насчет меню. Хочу, говорит, чтобы все пункты меню были открыты (доступны). Т. е. Enable:=true.
Вот тут и надо обрабатывать исключение. Например, если в меню Edit попытаться вставить текст в не созданное Child окно - возникает исключительная ситуация.
Но такой код вполне работоспособен

procedure TForm1.PasteMenuClick(Sender: TObject)
begin
try
TRichEdit.Paste;
except
exit;
end;
end;



 
БИС   (2003-02-04 08:22) [13]

убери exit
и ничего не изменится в данном куске кода


 
Бук   (2003-02-04 08:34) [14]

Угу.. Ток окошко с "ошибкой по адресу" будет постоянно вываливаться...


 
БИС   (2003-02-04 08:37) [15]

не может быть !
хочешь сказать твой exit отпрыгивает в сторону от
выдачи access violation ?


 
Chubais ©   (2003-02-04 08:46) [16]


> Например, если в меню Edit попытаться вставить текст в
> не созданное Child окно - возникает исключительная ситуация.

так ведь надо не глушить ошибки, а делать правильно
здеся нада чо: при рзворачивании меню смотреть, применим ли пункт меню к настоящей ситуации или нет.если нет - гасить меню


 
Бук   (2003-02-04 08:55) [17]

>БИС
Не поверишь!

> Chubais
Цицирую сам себя:

Клиент требует MDI приложение. При этом условие у него насчет меню. Хочу, говорит, чтобы все пункты меню были открыты (доступны). Т. е. Enable:=true.


 
БИС   (2003-02-04 09:06) [18]

пусть открыты будут
ты проверку внутри делай и не копируй зазря


 
Бук   (2003-02-04 09:33) [19]

>БИС

Ок...


 
Chubais ©   (2003-02-04 09:48) [20]


> Бук (04.02.03 08:55)

сорри, невнимательно читаю



Страницы: 1 вся ветка

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
9-37994
3d[Power]
2002-08-29 05:16
2003.02.13
Direct 3D Sound


3-38062
BlackTiger
2003-01-26 21:24
2003.02.13
DevExpress: Как частично


3-38059
cranium
2003-01-26 18:54
2003.02.13
DBGrid и DBEdit c кнопкой выбора....


4-38657
GrEG
2002-12-30 08:34
2003.02.13
Прозрачные контролы. Регионы.


1-38290
Natalia
2003-02-05 19:27
2003.02.13
скроллер мышки