Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.029 c
3-1086273282
vic1
2004-06-03 18:34
2004.06.27
Помогите с LIKE


1-1086952875
KraksPaks
2004-06-11 15:21
2004.06.27
Что юзать для чтения файла?


14-1086933878
Rouse_
2004-06-11 10:04
2004.06.27
С Днем Рождения 11 июня


1-1086326286
Babay
2004-06-04 09:18
2004.06.27
Текст из Мемо в WebBrowser


14-1086361745
Jeer
2004-06-04 19:09
2004.06.27
Терракт в Самаре