|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.08.2017, 23:56 | #11 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
что так делать не хорошо. в плохом коде только и приходится что разводить руками: "а что ещё я могу сделать? могу только залоггировать" в хорошем коде исключения не пролетают десять этажей от самых глубин до майна, где ничего сделать уже нельзя. механизм исключений был придуман для повышения отказоустойчивости систем. а не для того, что бы только разводить руками, и только логгировать ошибки. любые возможные проблемы решаются максимально близко к месту их возникновения. поэтому вот так: грамотные люди не делают. к чему вообще это было сказано? Цитата:
если уровень Z не может сам справиться со своей проблемой, то он кричит вышестоящему уровню Y, который инициировал его действия, а значит знает, что хотел получить от Z, чем грозит его неудача, и что можно предпринять в качестве запасного варианта. я особенно подчеркиваю: разгребать последствия провала Z, должен вышестоящий Y, а не уровень A, который благодаря инкапсуляции уже понятия не имеет, что творится в глубине. и ничего кроме как залоггировать, уже не сможет. люди, которые говорят: "с эксепшенами очень удобно, можно пулять их через десять этажей", по видимому не знаю, что такое "отказоустойчивость", и "надежный софт" |
||
23.08.2017, 01:32 | #12 | |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Цитата:
Код:
|
|
23.08.2017, 01:32 | #13 | |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Цитата:
Код:
|
|
23.08.2017, 07:12 | #14 | ||||
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
Цитата:
Цитата:
так все люди так делают. и грамотные и неграмотные. где-то throw кидается, а уровнем выше он оборачивается в try/catch. других механизмов для исключений нет. Цитата:
По словам человека вообще нельзя судить какой код он пишет. |
||||
23.08.2017, 16:36 | #15 | ||||||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
что вообще за вопрос такой? например: показать пользователю табличку: "сервер занят, попробуйте позже" Цитата:
Цитата:
Цитата:
Цитата:
для исключений есть один единственный механизм. и он не обязывает вас ловить исключения обязательно уровнем выше. Цитата:
и такое же неадекватный ответ. от задачи зависит. код - мысли программиста. |
||||||
23.08.2017, 18:00 | #16 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Это возможно только там, где есть вся необходимая информация.
Код:
Ловить его имеет смысл только там, где должна быть реакция. Максимально близко - понятие растяжимое. Последний раз редактировалось Croessmah; 23.08.2017 в 18:02. |
23.08.2017, 20:36 | #17 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Очередное обсуждение "протекающих абстракций".. Как всё хорошо должно быть. В теории.
Моё личное мнение - не стоит подходить к вопросам категорично. Если у программиста голова, а не задница, то он сам должен решать, на каком уровне ловить исключения. Осознанно. Понимая плюсы и минусы. Но никак не по готовым рецептам. |
24.08.2017, 20:50 | #18 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
у вызывающей стороны всегда есть такая информация.
за исключением случаев, когда неадекватный программист сам не знает зачем пишет вызов функции, и что он хочет от неё получить. Цитата:
он наверное знает, для чего писал его. чем грозит сбой в работе процедуры. Цитата:
у человека не достаточно знаний о том, как реагировать на возможные сбои используемых им процедур, тогда есть смысл задуматься: не лишний ли это человек для данного уровня? |
||
24.08.2017, 20:57 | #19 | |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
В показанном примере исключение выкидывает send_packet,
а в send_packets нет никакой информации. Цитата:
Какой уровень нужно "перезапустить" и нужно ли вообще. Как написано выше - рецепта нет. |
|
25.08.2017, 03:37 | #20 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Ура! Про автора вспомнили!))))))))))
Ну это шутливо)) На самом деле я рад развернувшейся дискуссии, и немало почерпнул. Я понял, что исключения надо применять там, где они уместны, а в остальных случаях надо не лениться продумывать все возможные варианты развития ситуаций, и делать индивидуальную обработку каждой. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исключения c# | CROWN | C# (си шарп) | 3 | 21.12.2014 18:29 |
Исключения в Qt | iukash | Qt и кроссплатформенное программирование С/С++ | 6 | 16.04.2011 18:54 |
Исключения C++ | Impuls1989 | Помощь студентам | 2 | 04.03.2011 00:51 |
Исключения | yurik1982 | Фриланс | 9 | 16.02.2010 00:34 |
Исключения | Rifler | Общие вопросы Delphi | 5 | 12.11.2008 00:29 |