Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi - приемущества и недостатки, принимаются различные высказывания 
:(
    Опции темы
Alexeis
Дата 16.1.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



javastic
Код

try
  method();
except
  on EFileBlockedException raise EMyException;
end;


Добавлено @ 16:01 
Цитата(javastic @  16.1.2007,  14:41 Найти цитируемый пост)
такой например как переполнение массива, потому что компилятор ругнётся. Плюс ты можешь поставить реакцию на любую возможную ошибку.


Все это и так имеется и работает.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 16.1.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(javastic @  16.1.2007,  13:41 Найти цитируемый пост)
Также говоришь методу что он следует исключению void method() throws FileBlockedException {....}

не понял этой фразы smile
этот метод сразу по входу дает исключение ? или что?

Цитата(Alexeis @  16.1.2007,  14:57 Найти цитируемый пост)
try
  method();
except
  on EFileBlockedException raise EMyException;
end;

обработку как и в 
Цитата(javastic @  16.1.2007,  13:41 Найти цитируемый пост)
try {
       method();
} catch (FileBlockedException fbe) {
       // тут для примера можно вывести сообщение пользователю
       // что программа не может записать в файл, т.к. он временно заблокирован
}


Alexeis, показал, хотя имхо не совсем то что в яве там, но смысл остался, обработка своего исключения в дельфи возможна.


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
javastic
Дата 16.1.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: нет
Всего: 27



Цитата
 Romikgy, 
не понял этой фразы 
этот метод сразу по входу дает исключение ? или что?


Такая запись говорит компилятору что если будешь использовать метод, то не забудь отлавливать эксепшены которые он может вернуть.

---

Код

 try
  method();
except
  on EFileBlockedException raise EMyException;
end;

 
 

Alexeis, синтаксис похож, но, компилятор выдаст ошибку если в методе method() произойдёт исключение? И ещё как я могу узнать что метод method() нужно вставлять в try (ну то что он не безопасный) ? 


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 16.1.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(javastic @  16.1.2007,  18:41 Найти цитируемый пост)

Такая запись говорит компилятору что если будешь использовать метод, то не забудь отлавливать эксепшены которые он может вернуть.

т.е. идет проверка на уровне компилятора, есть ли эксепшн или его нет , правильно?
Если да , тогда такого в дельфи нет, 
но как ты сам сказал
Цитата(javastic @  16.1.2007,  18:41 Найти цитируемый пост)
синтаксис похож


Цитата(javastic @  16.1.2007,  18:41 Найти цитируемый пост)
И ещё как я могу узнать что метод method() нужно вставлять в try (ну то что он не безопасный) ?  

как правило это приписывается в мануалах по классу и его методам


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 16.1.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(javastic @  16.1.2007,  19:41 Найти цитируемый пост)
Alexeis, синтаксис похож, но, компилятор выдаст ошибку если в методе method() произойдёт исключение?

Да конечно.

Цитата(javastic @  16.1.2007,  19:41 Найти цитируемый пост)
И ещё как я могу узнать что метод method() нужно вставлять в try (ну то что он не безопасный) ?  

   Не зная броду не лезьте вводу. Как можно использовать функцию не зная как она работает. Для новичков исключения пофигу, ведь они не пишут проф. софт. А профи если будет обрабатывать ошибку, то по крайней мере побеспокоится чтобы сообщение было правильно преподнесено пользователю. ИМХО это может и имеет применение, но нельзя сказать, чтобы это был принципиальный вопрос. Лично я привык, когда вызывается дефолтный обработчик исключения и выдает инфу (в делфи и дефолтные обработчики весьма неплохи)


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
nerezus
Дата 16.1.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Не зная броду не лезьте вводу. Как можно использовать функцию не зная как она работает.
 Один из основных принципов ООП - инкапсуляция. Это тебе ни о чем не говорит?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Romikgy
Дата 16.1.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(nerezus @  16.1.2007,  22:01 Найти цитируемый пост)
Один из основных принципов ООП - инкапсуляция. Это тебе ни о чем не говорит? 

Инкапсуляция (программирование) — Википедия
Ув. nerezus, не затруднит ли Вас ответить на такой вопрос , каким боком 
Цитата(nerezus @  16.1.2007,  22:01 Найти цитируемый пост)
инкапсуляция

имеет отношение к обработке исключений, особенно в данном контексте обсуждаемого?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
javastic
Дата 16.1.2007, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: нет
Всего: 27



Цитата

   Не зная броду не лезьте вводу. Как можно использовать функцию не зная как она работает. 


Ну а если нет доки, исходники закрыты, ну или просто человеческий фактор - просмотрел.

Цитата

Для новичков исключения пофигу, ведь они не пишут проф. софт.


Согласен!  smile 

Цитата

т.е. идет проверка на уровне компилятора, есть ли эксепшн или его нет , правильно?
Если да , тогда такого в дельфи нет, 


Спасибо, всё понял.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 16.1.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(javastic @  16.1.2007,  22:51 Найти цитируемый пост)
Спасибо

да пазям smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Daevaorn
Дата 16.1.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Romikgy @  16.1.2007,  21:14 Найти цитируемый пост)
т.е. идет проверка на уровне компилятора, есть ли эксепшн или его нет , правильно?

Компилятор же не может предугадать будет или нет выброшено исключение, он может лишь проверить потенциальную возможность данного метода выбросить исключение. На основе этой проверки он и требует или не трубует соотвествующий обработчик.
В С++ проверка происходит в run-time, и если не "правильное"(то которое не указано в спецификаторе исключений данной функции) исключение выброшено, то вызывается std::unexpected и программа завершается.
PM MAIL WWW   Вверх
nerezus
Дата 17.1.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

аким боком инкапсуляция имеет отношение 

Она относится к фразе 
Цитата

Не зная броду не лезьте вводу. Как можно использовать функцию не зная как она работает.


Теперь цитата из википедии: 
Цитата

пользователь класса должен видеть и использовать только интерфейс [skipped] класса и не вникать в его внутреннюю реализацию.




--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Daevaorn
Дата 17.1.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(nerezus @  17.1.2007,  12:12 Найти цитируемый пост)
Теперь цитата из википедии: 

вникать не надо. надо только знать результат выполнения метода и возможные исключения. 
PM MAIL WWW   Вверх
Romikgy
Дата 17.1.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



nerezus, имхо использование/возникновение исключений никакого отношения к инкапсуляции не имеет, не надо путаль мух с котлетами!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
nerezus
Дата 17.1.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Romikgy, согласен, я прогнал насчет этого )
Однако продолжу другую мысль:

Цитата

и возможные исключения
 А если внутри может возникнуть исключение, которое не обрабатывается, то компилер заставит меня его обрабатывать?
Не подскажет. Поэтому и приходится знать эти исключения. А если нет докоментации(ее часто нет)?
Нормальная же IDE для джавы сразу предложит либо добавить try/catch, либо throws запихнуть в описание метода.

Что же качается делфи, то ответ уже был:
Цитата

Если да , тогда такого в дельфи нет


Т.е. еще один минус.

Это сообщение отредактировал(а) nerezus - 17.1.2007, 12:40


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Romikgy
Дата 17.1.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(nerezus @  17.1.2007,  11:38 Найти цитируемый пост)
Т.е. еще один минус.

это для тя минус, 
и как говорилось выше обработка исключений идет в любом случае обрабатывает ее программист или нет!

Добавлено @ 12:48 
Цитата(nerezus @  17.1.2007,  11:38 Найти цитируемый пост)
согласен, я прогнал насчет этого

гы первый раз вижу чтобы ты согласился с нормальным доводом, радует  smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0800 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.