170 похожих чатов

ИМХО говорить что фильтры не должны швырять эксепшены в Джаве

- врать себе и окружающим. Если есть в языке паника, значит любой кусок кода может упасть. В джаве это отягчается еще и тем что можно через эксепшены сделать контрол-флоу. Если контрол-флоу избегать, то эксепшен в джаве будет просто средством донести программеру ASAP что он где то накосячил. Но никто никогда ему не даст гарантии что фильтры не кидают эксепшенов. Эдак какой нить товарищ, следуя этому правилу, просто перенесет фильтр в метод - и будет у него эксепшн в методе. Нарушение ли это? А если в качестве предиката используется уже готовый метод? Или мы теперь запретим нечистые предикаты? Даже Хаскель паникует, куда уж ленивей. Поэтому нет - не объективно.

2 ответов

23 просмотра

Про панику я не спорю, упасть может что угодно и где угодно. Но вот как раз делать это частью контрол-флоу не стоит, с этим потом работать грустно.

Мы сейчас говорим об идеологии стримов и методов обработки данных в принципе. Идеология filter такова, что он может возвращать только "да" и "нет", все, никаких третьих вариантов. Если он падает с NPE - значит, данные изначально неправильные, и их по порядку бы сначала профильтровать ещё и на null-ы. Ничего не берется из пустого места, если предсмотреть логичные ситуации, то паники на пустом месте не будет. Какой смысл был тогда завозить стримы в Джаву? Фильтровали бы дальше через for, и исключения бы ловили

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта