Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

try


Страницы:   1 2

juiceman ©   (2004-06-12 20:13:00) 

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


y-soft   (2004-06-13 19:19:00) [1]

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

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

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

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

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

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


GuAV   (2004-06-13 16:24:00) [2]


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

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


Mim1   (2004-06-13 15:42:00) [3]


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


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


jack128   (2004-06-13 15:15:00) [4]


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

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


RealRascal   (2004-06-13 14:48:00) [5]


> juiceman

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


jack128   (2004-06-13 14:38:00) [6]


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

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


R   (2004-06-13 14:26:00) [7]

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


y-soft   (2004-06-13 09:22:00) [8]

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

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

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

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

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

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


jack128   (2004-06-12 22:09:00) [9]


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

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


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

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


juiceman   (2004-06-12 21:57:00) [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у.е. а до конца месяца как до Луны, то становится сложно не "экономить на знаниях", как вы выразились. Можно конечно купить того-же Рихтера и умереть с голоду :)


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


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

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


y-soft   (2004-06-12 21:10:00) [13]

>juiceman   (12.06.04 20:35) [3]

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

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


Anatoly Podgoretsky   (2004-06-12 20:58:00) [14]

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


y-soft   (2004-06-12 20:55:00) [15]

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


jack128   (2004-06-12 20:53:00) [16]


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

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

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

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


y-soft   (2004-06-12 20:49:00) [17]

1. try...finally...end

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

2. try...except...end

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


GuAV   (2004-06-12 20:42:00) [18]

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


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

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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо