Форум: "Основная";
Текущий архив: 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] я хотел сказать совсем не про эти конкретные случаи, а про то, что без изучения теории, на основе только ограниченного количества примеров можно сделать неполные (и даже неправильные) выводы об изучаемом предмете...
← →
R © (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