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

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

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

2 ответов

17 просмотров

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

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

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

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

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта