![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
try
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]Это защащенный блок, соттветственно туда помещается то что нужно защитить.