Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

самосовершенствование

5.7K
09 июля 2008 года
N-John
52 / / 05.07.2006
Отучился в институте 3 курса. Изучали С++. Прошли базу которая описана во всех учебниках по этому языку. Естественно специалистом в С++ я от этого не стал. Решать простейшие задачки решать уже надоело, руку набил. В связи со всем этим возник вопрос: какие технологии, приемы в программировании сейчас наиболее распространены и востребованы? Что изучить? И наскока сейчас востребован C#?
Страницы:
63
11 июля 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: hardcase
А вот МакКоннел настаивает на их использовании. Кому верить? Собственному опыту :D


Ну я с ним в этом солидарен :-D

4.3K
13 июля 2008 года
flat
142 / / 27.12.2005
Цитата: Green
Вот и я их не люблю


Почему?

3
13 июля 2008 года
Green
4.8K / / 20.01.2000
Цитата: flat
Почему?


Если кратко, то они нарушают стройность программы. Стройность - понятие субъективное, поэтому я и говорю: "не люблю их", а не "категорически не рекомендую использовать".

Исключения запутывают программу. Это такой скрытый goto. Куда перепрыгнет исполнение порой очень сложно отследить, поэтому я пытаюсь те места, где есть могут возникнуть исключения, обернуть в такую... исключение-непробиваемую оболочку.

Исключения нередко приводят к утечкам памяти, появлению невалидных указателей и т.п.

Механизмы исключений весьма различны, но обычно весьма медлительны и расточительны (фрагментация). Они сложно переносимы с одной платформы на другую при необходимости низкоуровневой оптимизации.

А вот, что пишет Джоел:
http://www.joelonsoftware.com/items/2003/10/13.html

5
13 июля 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Green
Исключения запутывают программу. Это такой скрытый goto. Куда перепрыгнет исполнение порой очень сложно отследить

С этим согласен, тоже не слишком приветсвую их.

А вот если подумать, существует ли принципиально иной способ перехода для сообщения об "исключительной" ситуации - т.е. состояния программы, в которое не должна приходить система во время функционирования?

Код ошибки использовать неудобно: замучаешься проверять каждый вызов.
Исключение - нечто скользкое и goto-подобное.
Есть ли третий вариант?

З.Ы. Я понимаю, что если избавиться от "состояний" и перейти к функциональным языкам ни исключения ни коды ошибок практически не понадобятся.

255
14 июля 2008 года
Dart Bobr
1.4K / / 09.04.2004
ну... есть еще извращенная обработка исключительных ситуаций под symbian :)
361
14 июля 2008 года
Odissey_
661 / / 19.09.2006
Цитата: hardcase

Исключение - нечто скользкое и goto-подобное.
Есть ли третий вариант?

З.Ы. Я понимаю, что если избавиться от "состояний" и перейти к функциональным языкам ни исключения ни коды ошибок практически не понадобятся.



Вовсе нет.
Вообще альтенативных способов обработок "внеплановых аварий" не мало. Например в Erlange.
[QUOTE=wikipedia]
Второй момент выражается в формуле «let it crash» («пусть процесс упадет»). Вместо перехвата ошибок и попытки продолжения работы часть программы, содержащая рискованный код, выделяется в отдельный процесс-камикадзе, этот процесс делает всё возможное, чтобы система убила его в случае возникновения ошибки[/QUOTE]
Я правда знаком с ним только по хеллоу-ворлд =).

В Eiffel`е есть пред и пост условия выгодно дополняющее исключения.

63
14 июля 2008 года
Zorkus
2.6K / / 04.11.2006
Насчет того, что в функциональных языках не понадобятся исключения.
Вот тут я откровенно говоря сильно сомневаюсь. Сейчас многие из них перенесли на управляемые платформы, например - Haskell, Python и другие есть под JVM.
Я не занимался этим вопросом глубоко, функциональным программированием, и тем более их особенностями работы в таком окружении. Но если они работают под JVM - мне не совсем ясно, как они могут избегать использования исключений.
5
14 июля 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Odissey_
В Eiffel`е есть пред и пост условия выгодно дополняющее исключения.

А вот это интересная вещь. Частично можно их эмулировать проверками инвариантов, как в NUnit (классы Assert, Debug), но мне кажется, это может помогать только в тривиальных случаях.
[quote=Zorkus]Я не занимался этим вопросом глубоко, функциональным программированием, и тем более их особенностями работы в таком окружении. Но если они работают под JVM - мне не совсем ясно, как они могут избегать использования исключений.[/quote]Я знаком с F# (OCaml на .NET) - синтаксис, принципы, но покачто ничего полезного разрабатывать не пришлось, но скоро видимо придется.
Так вот мне кажется, что собственные исключения вряд ли понадобятся, и нужно будет отлавливать только исключения среды исполнения, правда, при условии, что у нас достаточно "чистый" стиль разработки.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог