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

Вниз

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

 
juiceman   (2004-06-12 20:13) [0]

Поведайте, в каких случаях блоки команд желательно (необходимо) помещать в try ... end


 
jack128 ©   (2004-06-12 20:16) [1]

подобные вопросы расматриваются  в книгах ;-)


 
Anatoly Podgoretsky ©   (2004-06-12 20:22) [2]

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


 
juiceman   (2004-06-12 20:35) [3]

Много книг - большая роскошь, одна книга - мало толку. Вот в моей один пример про открытие файла.


 
GuAV ©   (2004-06-12 20:42) [4]

Мне лично хелпа и исходников VCL хватило.


 
y-soft ©   (2004-06-12 20:49) [5]

1. try...finally...end

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

2. try...except...end

Когда необходимо выполнить некоторые действия при возникновении исключения


 
jack128 ©   (2004-06-12 20:53) [6]


> Много книг - большая роскошь, одна книга - мало толку. Вот
> в моей один пример про открытие файла.

_Хорошие_  книги - это не та вещь на которой стоило бы экононить ;-)

А книгу, в которой только один пример - я бы и книгой не назвал.. Может это методичка? ;-)

> Мне лично хелпа и исходников VCL хватило.
К сожелению не все такие умные, как ты ;-)


 
y-soft ©   (2004-06-12 20:55) [7]

Очень подробно описано у Рихтера в V части Книги


 
Anatoly Podgoretsky ©   (2004-06-12 20:58) [8]

jack128 ©   (12.06.04 20:53) [6]
Ну кто начем экономит, некоторые на знаниях.


 
y-soft ©   (2004-06-12 21:10) [9]

>juiceman   (12.06.04 20:35) [3]

Много книг - большая роскошь, одна книга - мало толку. Вот в моей один пример про открытие файла.

Иногда исключения используются мягко говоря... нетипично.
Вот попадется человеку этакий пример, где для выхода из вложенных циклов генерируется исключение, которое отлавливается в обработчике On E:MyException do и будет он после этого считать, что так и надо :))


 
GuAV ©   (2004-06-12 21:33) [10]


> для выхода из вложенных циклов генерируется исключение,
> которое отлавливается в обработчике On E:MyException do
> и будет он после этого считать, что так и надо :))

Если физика процесса такова, что MyException - дейтсвительно какая-то "нештатная ситуация", то почему бы и нет.
Кроме того, есть даже спец класс исключений, которые есть для выхода из вложенных процедур - Abort (тихое исключение)
Из вложенных циклов, imho, можно exit-ом выходить, а чтобы не выходить слишком далеко, выделить циклы в процедуру, и ещё try... finally здесь поможет...
Кстати, а для Вас что здесь типично? Вероятно goto? Честно говоря, и разу не юзал, может не от большого ума конечно...


 
juiceman   (2004-06-12 21:57) [11]

Вопрос я не совсем правильно задал, сам прочитал и понял это.
y-soft ©   (12.06.04 20:55) [7]
Очень подробно описано у Рихтера в V части Книги
Отдельное спасибо


> Anatoly Podgoretsky ©   (12.06.04 20:58) [8]
> jack128 ©   (12.06.04 20:53) [6]
> Ну кто начем экономит, некоторые на знаниях.

Тут вы ошибаетесь на все 100%. Когда у вас 20у.е. а до конца месяца как до Луны, то становится сложно не "экономить на знаниях", как вы выразились. Можно конечно купить того-же Рихтера и умереть с голоду :)


 
Sergey Masloff   (2004-06-12 22:00) [12]

juiceman   (12.06.04 21:57) [11]
есть еще волшебное слово "библиотека" ;-)


 
jack128 ©   (2004-06-12 22:09) [13]


> . Когда у вас 20у.е. а до конца месяца как до Луны, то становится
> сложно не "экономить на знаниях", как вы выразились

но на интернет же деньги есть ;-) к слову в интернете можно скачать и Рихтера, и Кнута, и Пачеко и Тейксера и многих многих других..


 
y-soft ©   (2004-06-13 09:22) [14]

>GuAV ©   (12.06.04 21:33) [10]

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

И EAbort IMHO в общем-то придумано не специально для выходов из циклов, а в качестве удобного инструмента для "тихой" обработки исключений, когда без этого ну никак не обойтись.

Но согласитесь, что существует и множество других возможных решений

Не надо самоограничивать себя догмами. В каждой конкретной ситуации надо использовать самые "дешевые" и оправданные способы. Не исключено, что иногда даже и пресловутый goto :)

А в [9] я хотел сказать совсем не про эти конкретные случаи, а про то, что без изучения теории, на основе только ограниченного количества примеров можно сделать неполные (и даже неправильные) выводы об изучаемом предмете...


 
©   (2004-06-13 14:26) [15]

ИМХО
Чем больше кода помещено в защещенные блоки тем лучше-
все варианты возникновения исключений просчитать порой не возможно.


 
jack128 ©   (2004-06-13 14:38) [16]


> Чем больше кода помещено в защещенные блоки тем лучше-
> все варианты возникновения исключений просчитать порой не
> возможно

могу тебя обрадывать - почти весь код в VCL - программе помещен в один блок try except end;  ;-)


 
RealRascal ©   (2004-06-13 14:48) [17]


> juiceman

На низком уровне от зависания все равно тебя этот блок не спасет. При работе с последовательными портами, например.


 
jack128 ©   (2004-06-13 15:15) [18]


> На низком уровне от зависания все равно тебя этот блок не
> спасет. При работе с последовательными портами, например

какая связь между исключениями и зависаниями? ;-)


 
Mim1 ©   (2004-06-13 15:42) [19]


> [15] R ©   (13.06.04 14:26)
> ИМХО
> Чем больше кода помещено в защещенные блоки тем лучше-
> все варианты возникновения исключений просчитать порой не
> возможно.


Всякий фрукт полезен когда его применют в меру и по назначению. Если бездумно ленить защищенные болки на лево и направо ничего хорошего из этого не выйдет.


 
GuAV ©   (2004-06-13 16:24) [20]


> А в [9] я хотел сказать совсем не про эти конкретные случаи,
> а про то, что без изучения теории, на основе только ограниченного
> количества примеров можно сделать неполные (и даже неправильные)
> выводы об изучаемом предмете...

Если в этом контескте, то согласен.


 
y-soft ©   (2004-06-13 19:19) [21]

>Mim1 ©   (13.06.04 15:42) [19]

Всякий фрукт полезен когда его применют в меру и по назначению. Если бездумно ленить защищенные болки на лево и направо ничего хорошего из этого не выйдет.

Тем более, если учесть, что от ошибок программирования эти блоки все равно не защищают :))

К тому же удовольствие это не бесплатное, особенно при большой глубине вложения

>GuAV ©   (13.06.04 16:24) [20]

Да, именно в таком контексте. IMHO без знания внутренних механизмов программирование превращается в шаманство. Тогда и идут в ход различные "незыблемые правила", "универсальные рецепты", а живая мысль подменяется цитированием классиков :(



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

Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.035 c
1-1086827838
vasko
2004-06-10 04:37
2004.06.27
Выполнение процедур из другого приложения


14-1086633056
YurikGl
2004-06-07 22:30
2004.06.27
Глюки WinXP


6-1083699228
sashcan
2004-05-04 23:33
2004.06.27
Про сотовую связь


3-1085489232
Andrick
2004-05-25 16:47
2004.06.27
Заполнение dbGrid


14-1086759922
Andrey007
2004-06-09 09:45
2004.06.27
Плавающее Access Violation





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский