Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
stuffy.reg...не обрабатывать исключения ? ... сама по себе обработка исключений - инструмент. юзать или не юзать, как юзать, где юзать - эти вопросы очень сильно вплетены в область решаемых задач, общим подходам программирования в данной конторе, архитектурному вопросу. помимо самого инструментария, при его применении необходимо решить кучу вспомогательных вопросов. как правило народ это либо не понимает(представляет как можно вытащить все плюсы :) не те плюсы), либо лениться, либо нет сил и средств на проработку этих вопросов. из своего опыта могу сказать, что глубоко проработанная концепция создания-ловли-обработки-разборки-диспетчирезации-делегации исключений _резко_ повышает надёжность всего продукта в целом. всё остальное - от лукавого. удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 15:22 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Наверное исходник С++ бесполезно рассматривать в вакууме. Нужно какое-то code convention. Думаю это code convention и имел в виду PM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 15:39 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Ну понакидали кучу вариантов. Но, возвращаясь к изначальному вопросу, ни в одном из этих вариантов почему-то нет явной обработки исключений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 16:31 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
а, не, в одном есть: Код: plaintext 1. 2. 3. и это ужас-ужас-ужас... так нельзя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 16:36 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
?Ну понакидали кучу вариантов. Но, возвращаясь к изначальному вопросу, ни в одном из этих вариантов почему-то нет явной обработки исключений :) Так явная обработка не нужна. Точнее она нужна, но не в этом низкоуровневом коде. Пока не будет понимания что исключения не нужно обрабатывать тут же, вам так и будет казаться что от них одни проблемы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 16:58 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
?а, не, в одном есть: Код: plaintext 1. 2. 3. и это ужас-ужас-ужас... так нельзя... По вашей ссылке всё ещё в разы хуже. В этом примере больше и не нужно, а у вас просто необоснованный страх перед неизвестным для вас механизмом исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 17:05 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Проблема в поддержке чужого кода. Ну вот есть некая программа, устанавливается как сервис, типа должна всегда работать, нельзя чтобы упала. Ну и вставили разработчики там "чтобы не упала" catch(...){}. Когда из-за утечки она начала кидать bad_alloc, перехватывать его и пытаться продолжать работать... да лучше бы она упала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 17:36 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
?Проблема в поддержке чужого кода. Ну вот есть некая программа, устанавливается как сервис, типа должна всегда работать, нельзя чтобы упала. Ну и вставили разработчики там "чтобы не упала" catch(...){}. Когда из-за утечки она начала кидать bad_alloc, перехватывать его и пытаться продолжать работать... да лучше бы она упала. Чего вы там выдумываете? Приведите пример вашей правильной реализации на C++ этого примера с кодами возврата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 17:41 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Щас читаю Scala Хорстмана. Интересно он там про checked Exceptions написал. Чуть позже отквотирую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 17:45 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Приведите примерЧего вы там выдумываете? Приведите пример вашей правильной реализации на C++ этого примера с кодами возврата. Да причем тут коды возврата? Нельзя делать catch(...) без перевыбрасывания исключения. То есть эту конструкцию можно применять только в контексте Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 17:53 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Искать баги в чужом коде, использующем исключения, сложнее, чем в коде, не использующем исключения... Это кто-то будет оспаривать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 17:57 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
[quot MasterZiv]Anatoly MoskovskyПро отключенные исключения. Так если гугловцы не используют исключения, они должны их выключать при сборке, либо быть готовым ко всему, что у них записано в CONS. вы непоняли что написано - они не используют исключения для управления логикой приложения как это сделано в жабе и шарпе. И это правильно - ибо при исключении в винде происходит first chance exception и отлаживать потом такое приложение в windbg становится невозможным из-за обилия исключений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 18:09 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
?Искать баги в чужом коде, использующем исключения, сложнее, чем в коде, не использующем исключения... Это кто-то будет оспаривать? В вашем коде да. ?Приведите примерЧего вы там выдумываете? Приведите пример вашей правильной реализации на C++ этого примера с кодами возврата. Да причем тут коды возврата? Нельзя делать catch(...) без перевыбрасывания исключения . То есть эту конструкцию можно применять только в контексте Код: plaintext 1. И что же в моем примере должен делать rollback() и почему я не могу вернуться по флагу(коду) возврата return false - неужели использовать код возврата это так ужасно? Вы свой пример кода приведите и вам сразу станет очевидно какую чушь вы несете :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 18:32 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Lepsikвы непоняли что написано - они не используют исключения для управления логикой приложения как это сделано в жабе и шарпе. Думаю, это вы не поняли. Исключения как концепция не предполагает вообще управление логикой. В джаве и шарпе тоже никто не использует исключения для управления логикой. Вернее использовать-то их можно (как и в С++), но те, кто используют - это те же кто потом говорит, что исключения хуже чем коды возврата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 01:32 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
?Искать баги в чужом коде, использующем исключения, сложнее, чем в коде, не использующем исключения... Это кто-то будет оспаривать? Да. Оспариваем. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 01:32 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyLepsikвы непоняли что написано - они не используют исключения для управления логикой приложения как это сделано в жабе и шарпе. Думаю, это вы не поняли. Исключения как концепция не предполагает вообще управление логикой. похоже что английский для вас не родной, но я таки дам вам статью где таки да критикуют это - http://www.ibm.com/developerworks/java/library/j-jtp05254/index.html И это часть концепции девелопмента в жабе и С# даже в крупных компаниях когда кидают исключение не только вместо кода ошибки но для управления логики. пример - catching NoSuchElementException when calling Iterator.next() instead of first checking Iterator.hasNext() и такого кода я за годы существования C# и java я разгреб тонны и вы будете мне сказки рассказывать вот вам пример из учебника по жабе Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. https://today.java.net/pub/a/today/2003/12/04/exceptions.html Пример для С++: MSSQL 2000 под отладчиком сыпет тонны first chance exceptions по любому запросу и при старте, к счастью, начиная с MSSQL2005 они этот порочный путь оставили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 07:25 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky?Искать баги в чужом коде, использующем исключения, сложнее, чем в коде, не использующем исключения... Это кто-то будет оспаривать? Да. Оспариваем. :) Я бы тоже поспорил. С исключениями код проще, легче читается, проще понимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 12:10 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Lepsik, авторИ это часть концепции девелопмента в жабе и С# даже в крупных компаниях когда кидают исключение не только вместо кода ошибки но для управления логики. Использование исключений для реализации логики -- это на столько плохо, что вообще не обсуждается. С этим никто не спорит. Но там было чётко написано (перевожу на русский) -- "Мы не используем исключения". Не используем -- значит, как минимум, они не кидаются, не обрабатываются и не ловятся. Если расширить толкование, это может значить три вещи (как я понимаю). Они не используют исключения вообще, не включают в компиляторе поддержку исключений, а также не используют библиотеки, которые используют исключения. Они не используют исключения в своём коде, но в компиляторе исключения включены и библиотеки, использующие исключения, используются. (странный случай). Они не используют исключения в своём коде, в компиляторе исключения включены и библиотеки, использующие исключения, искпользуются. В каждом приложении наверху пишется стек обработки исключений, они ловятся и как-то обрабатываются. На самом деле в реальности либо 1, либо 3, 2-й сценарий нереальный. Ну а если они ловят искл. наверху, то должны будут ловить иногда и в других местах, локальных. Это уже неиспользванием исключений не назвать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 12:19 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
LepsikNoSuchElementException IllegalArgumentException Это два примера, когда как раз к логике исключения не имеют отношения. Это обычная защита от дурака. В первом случае дурак не проверил что итератор завершен и продолжает его использовать, а во втором - передал в функцию левые аргументы. Это не элементы логики, а именно исключительная ситуация. Причем заметьте, что сама джава не заставляет вас использовать например NoSuchElementException для проверки итератора - у вас есть hasMoreElements hasNext Это кто-то слишком умный у себя решил вместо if применить catch, а вы почему-то именно к джаве претензии предъявляте. Lepsikдаже в крупных компаниях В крупных компаниях процент дураков такой же как и в мелких. А абсолютном значении - их гораздо больше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 12:54 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
это зависит от специфики проекта. Код, откомпилированный без поддержки исключений, более компактен. Если это embedded-задачи, то там это может быть важно. В этом случае их нельзя ни бросать, ни обрабатывать. Может, например, у них в планах шить код в железку низкоресурсную, поэтому они заблаговременно к этому готовятся. что касается обычных задач, где ресурсов достаточно... Я вот замечал, что даже в java даже в распространенных либах иногда встречаются "лишние" обработки исключений, которые только мешают. Может у них там разработка так поставлена, что вам просто это делать не надо. Исключения обрабатываются на том уровне, где известно что с ними делать. Но некоторые особо упоротые везде понаставляют try-catch c последующим rethrow и потом сиди их выковыривай. я бы на вашем месте спроил у тимлида че это он так. Наверняка на это есть причина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 13:41 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
chabapok...embedded-задачи, то там... ...Исключения обрабатываются на том уровне, где известно что с ними делать. Но некоторые особо упоротые везде понаставляют try-catch c последующим rethrow и потом сиди их выковыривай..... в embedded - редко юзаются плюсы. как правило си и азм. само использования плюсов - не всегда там целесообразно. но если юзается - то имхо не юзать эксепшены - глупо. как уже прозвучало - с ними проще, читабельней, надёжней. вы апсолютно правы по поводу где обрабатываются эксепшены....бла-бла-бла... но как я уже сказал выше - это уже идеология, архитектура. а сами эксепшены - это механизм, инструмент. можно знать про нюансы применяемого инструмента, можно не знать - и утверждать, что микроскоп фиговый инструмент, т.к. гвозди им забиваемым гнутся в 70% случаях. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 16:32 |
|
||
|
Обработка исключений отсутствует
|
|||
|---|---|---|---|
|
#18+
Иногда в деструкторах хочется совершать действия не вызывающие обратной связи. Ну толкнуть .close для всех объектов connection, files, handles e.t.c. Что там он выбросит- пофиг. Это уже не важно. Это завершающие действия, фидбэк по которым неинтересен. Закрыт хендл и леший с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 18:47 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38394687&tid=2019984]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 16ms |
| total: | 205ms |

| 0 / 0 |
