|
0 / 0 / 0
Регистрация: 07.07.2017
Сообщений: 105
|
|||
Зачем раздел Finally, если можно написать после try.except?18.12.2018, 14:12. Показов 2787. Ответов 9
Метки нет (Все метки)
Сколько я уже прочитал таких вопросов и однотипных ответов, но так и не понял.
Вот цитата из Библии Delphi по поводу try...except
У меня помимо освобождения ресурсов ещё много всего важного выполняется, что к try не относится, и если оно не выполнится, будет даже хуже, чем застрявшие ресурсы, так мне что, нужно весь код в finally писать? Хоть убей, не понимаю. Объясните, плиз, или ссылку дайте, где это разжёвано нормально. Спасибо.
0
|
|||
| 18.12.2018, 14:12 | |
|
Ответы с готовыми решениями:
9
Составить алгоритм и написать программу(если можно с объяснением как и зачем) Зачем вообще нужно слово NULL если можно просто написать 0? |
|
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
|
|
| 18.12.2018, 16:07 | |
|
И что не ясно?
Все же написано, код между except end выполнится только в том случае если произойдет исключение. А код между finally end выполнится в любом случае. Добавлено через 9 минут Вас никто не загоняет ни в какие рамки, это просто инструмент, как пользоваться и пользоваться ли решаете вы сами. Архитектура приложения это ваша личная фантазия и ответственность.
0
|
|
|
|
||||||
| 18.12.2018, 17:11 | ||||||
|
стандартное использование finally - это отдача ресурсов
а except - когда нужно обработать ошибку
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.07.2017
Сообщений: 105
|
||||||
| 24.12.2018, 12:54 [ТС] | ||||||
|
Вот вроде и вопрос расписал, а ответы одни и те же
Попробую пояснить вопрос на Вашем же примере: что мешает сделать так? Код освобождения ресурсов, как я писал в начале, тоже ведь в любом случае выполнится
0
|
||||||
|
|
|
| 24.12.2018, 21:03 | |
|
ничего не мешает
вы просто давите exception иногда это оправданно иногда это просто заметание проблем под коврик тут как и написано выше, программист волен сам выбирать, как использовать инструменты
0
|
|
|
0 / 0 / 0
Регистрация: 07.07.2017
Сообщений: 105
|
|
| 24.12.2018, 21:13 [ТС] | |
|
Тогда в чём вообще отличие вашей конструкции от моей? Я вот этого не понимаю
0
|
|
|
|
|||||||||||
| 24.12.2018, 21:44 | |||||||||||
|
как обычно, в модульности и ремонтопригодности
обычно это открывается, если вы работаете в коллективе над большим проектом в этом случае, если код следует устоявшимся практикам, то вероятность возникновения ошибки снижается многократно если же там суверенные "находки" от автора, то тот, кто вносит изменения в код после вас, вынужден сначала понять, потом оценить равноценность замены, потом внести правки и ничего не испортить при этом вы даже не представляете, сколько банальные begin end дают возможностей накосячить
Добавлено через 42 секунды еще раз повторюсь, это просто инструменты разницы никакой нет стиль написания нужен только для ремонта и изменений впоследствии
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 07.07.2017
Сообщений: 105
|
|||||||||||
| 29.12.2018, 10:40 [ТС] | |||||||||||
|
Хм... правильно ли я понял: это
Вся разница лишь в эстетике написания? И доступности кода для широких масс?
0
|
|||||||||||
|
156 / 114 / 36
Регистрация: 27.06.2018
Сообщений: 257
|
||||||||||||
| 29.12.2018, 10:52 | ||||||||||||
|
В данном примере да. Но вот если нужно после ошибки выйти из процедуры, то разница будет
Тут FreeAndNil выполнится
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 07.07.2017
Сообщений: 105
|
|
| 29.12.2018, 11:03 [ТС] | |
|
А вот это уже интересный момент
не думал, что даже при выходе из процедуры код finally выполняется! Спасибо.
0
|
|
| 29.12.2018, 11:03 | |
|
Помогаю со студенческими работами здесь
10
Зачем писать IEnumerable<string> product если можно написать var product? Зачем нужен finally? Зачем учить указатели, если можно использовать вектор? Зачем нужен PaintBox, если рисовать можно на форме ? Зачем нужен iterator, если можно обойтись без него? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|