Обновить
29
0
Фофанов Илья@EngineerSpock

Ответственный программист

Отправить сообщение
Да, не рекомендуется, однако Enterpise Framework раздел обработки исключений построен именно на политиках, по сути, фильтрационных. Ну, там несколько посложнее, но суть та же.
Обратите внимание на путь к книжке: ...gibkoi-razrabotki-na-yazyke-c-fail

Это программисты на books.ru угорают, называя CSharp СFail-ом?)))
Ну, что ж, это вполне адекватно. Извините, что накинулся на вас. Надеюсь, что вы попадёте в рай :)
Искренне надеюсь, что для людей, которые задают подобный вопрос в любой теме о микрософтовских девайсах в аду есть отдельный адский кипящий чан.
Как вы думаете, за что мне минусы в коммент ставят? Потому что плохо не понимать рекурсию, будучи программистом?
Программист. Я знаю, что это такое, но алгоритмы с рекурсией понимаю с большим трудом.
Получаю сто тыщ и не знаю рекурсию. Эффективно работать не мешает.
Я все эпизоды видел. Ничего у него толком не написано)
Кроме всего прочего, лично Мартину вопрос задавал по поводу исключений и кодов возврата.
Посмотрел. Таким образом, вы согласны, что простых, не приносящих боли способов работы с ошибками нет? Вы также согласны с тем, что и исключения и коды ошибки имеют право на жизнь? Или вы исключительно за использование исключений (извиняюсь за каламбур)? А если вы считаете что нужно использовать только исключения, то какие контр-аргументы вы можете привести против того, что писал в комментариях powerman?
Вот именно! А у Сергея в статье «всё прекрасно» и «просто». Чувства боли совсем не возникает и это негативно отражается на сознании начинающих разрабов.
Это именно та статья, которая явилась одной из причин по которой я решил написать эту статью. Я, как вы уже поняли, не считаю исключения панацеей. Да и как вы уже, наверное, поняли, мало кто так считает из числа программистов реальных сложных приложений.
У меня возникла потребность написать статью, поскольку до меня дошло по сути то, что вы пытаетесь объяснить в комментариях. И мне потребовалось всё это закрепить на бумаге.
Возможно, я где-то, что-то неправильно сформулировал, это может быть.
Какие проблемы в статье являются надуманными?
Не хочу давить на экспертократию, но даже Липперт и Хэйлсберг подтвеждают наличие проблем.
Предлагаю ничего ничем не заменять, а дополнить статью выдержкой из пары хороших комментариев.
Однако, у меня есть пара комментариев.

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

Ещё момент. Выкидывать исключения из библиотек именно в плане указания того, что библиотекой пользуются неправильно — хорошая практика. Это легко и просто отлаживать. Программисту остаётся только добиться того, чтобы таких исключений никогда не возникало (этих «защитных» исключений, которые защищают инварианты класса). Этого помогают добиться юнит-тесты и всякие разные практики.
Шикарный комментарий. Отлично дополняет статью и делает её значительно лучше. Пожалуй, вы сказали то, что я сказать забыл. Большое спасибо.
Не совсем. Если случится StackOverflow и он попадёт в catch(Exception), то он съестся. После этого программа будет некоторое кол-во времени (неизвестное) будет находиться а работе и что случится с данными никому неизвестно. Это важно. Кроме означенных исключений есть ещё некоторые, которые лучше не ловить. Если вы глянете в Enterprise Framework, вы увидите примерно такой же подход — фильтрацию.
То есть, пусть пользователь не понимает, что происходит, да? И если обработка совсем не нужна, то пусть всё падает, да? Или как — не могу понять.
Абсолютно согласен. Так всё и есть. И баги компенсируются ручной работой, зачастую. Насколько это приятно клиенту и самому разработчику — отдельный вопрос (но я думаю всем всё очевидно).
Убиваются любые, где Handled не будет выставлен в true, конечно же. Это всё, что вам не понравилось в статье?

Нет, на делфи не программировал. А что не так с этими методами?

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность