Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.014 c
1-38183
KonstVD
2003-02-03 09:45
2003.02.13
StringGrid


8-38404
HardClubber
2002-10-19 07:46
2003.02.13
TPaintBox vs TBitmap


1-38196
Вовчик
2003-02-04 23:43
2003.02.13
поиск ListBox


6-38412
slyfox
2002-12-23 07:33
2003.02.13
Как подключить сетевой диск в Дельфи ?


1-38286
Ash
2003-02-05 18:37
2003.02.13
DrawFocusRect





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский