![]() |
|
Модераторы: LSD |
![]()
|
|
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 4 Всего: 172 |
Исключения хороши для того, для чего они предназначены: ловить исключительные sитуации. Но в любом языке (и в сиппипи) брошнный иксепшн означает (неэффективную) размотку sтекa; а потому ими пользоваться нужnо в меру. goto был бы быстрее, хотя я считаю без негo в языках высокого уговня легкo можнo обойтись. -------------------- |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 4 Всего: 172 |
Java:
http://www.javaperformancetuning.com/tips/rawtips.shtml Throwing/catching exceptions are tremendously expensive. C++ http://www.informit.com/guides/content.asp...plus&seqNum=112 -------------------- |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Для этого не нужны goto, а break/continue с меткой.
Не читабельный код, говорю по опыту раскапывания старого QVB(диалект VB) кода. Сколько себя помню goto не использовал -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Sardar, для небольших ф-ций вполне читабельный.
Это понятно, но в БОЛЬШОЙ вложенности тебе придётся делать кучу проверок для этих меток. |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 4 Всего: 172 |
Для небольших методов goto и не нужен -------------------- |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 4 Всего: 165 |
Domestic Cat
А читабельность кода? На мой взгляд, удобнее читать код с исключениями чем заниматься сексом с goto'ами... --------------------
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
"Небольшой" понятие относительное. Я имею в виду нормальную функцию длиной в 2-3 экрана. Потом, что значит "нечитабельный"? Насколько я знаю, goto сейчас применяется только для тех целей, которые я указал (99%).Стало быть, если нет цикла, то... В общем, структура кода достаточна очевидна. Однако, здесь дело каждого, как и что использовать. Мне лично немного непонятен лозунг "программирование без goto!!!". Почему без него? И с ним можно делать красивый код, только злоупотреблять не надо, как и везде. Что, скажете, из цикла тройной-четверной вложенности вы выйдете красивее и понятнее при помощи доп. перепенных и break-ов? Да никогда |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
PS: А без лекарства - можно "ласты склеить" Это сообщение отредактировал(а) Girder - 24.12.2004, 16:01 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 4 Всего: 172 |
ну это само собой а вообще я не помню чтобы я пользовался иксепшнами (как и goto) для переходов куда либо.
не всякий код с goto будет нечитабельным, но goto стимулирует написание такогo кода. при правильном пользовании goto можеt быть удобен, но будет ли приятно чи тать код поперемеченный лейбелами вдоль и поперек? все что может goto можно сделать другими средствами; возможно в некоторых (0.001%) ситуация такой код будет неуклюжим по сравнению с goto, но зато в остальных - будет понятнее. -------------------- |
||||
|
|||||
| dm9 |
|
||||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Заметь, об этом никто не говорил
Вот! И я о чём! |
||||
|
|||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 4 Всего: 172 |
все равно - в Java его нет и я нe разу о нем нe вспомнил -------------------- |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Не понял про проверки. Гото это универсальный оператор перехода куда угодно(возможно ограничение: только внутри функции). break/continue с меткой имеет однозначное значение: окончить/продолжить заданный цикл. По любому компилятор сгенерит гото в конец или начало цикла, вместо того что бы ты сделал это сам. Я за goto, но что бы компилятор выдавал warning'и и обкладывал трёхступенчатым не отключаемым матом всех, кто захочет его использовать
Я тоже -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 4 Всего: 165 |
Зато с исключениями гораздо логичнее заметь ;) --------------------
|
||||
|
|||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 4 Всего: 172 |
Вот stubborn
Без них еще логичнее -------------------- |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Что-то я тебя не понял. Что такое goto я знаю Я думал, ты хочешь выйти из цикла по break, но это выход из внутреннего цикла. Перед этим мы ставим флаг, и точно так же по break выходим из второго цикла. По этому же флагу - из третьего. А что ты имел в виду под "break/continue с меткой"? Может, мы про разные языки? |
|||
|
||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |