не найдена? null, или Exception?
Три варианта; 1. Nullobject 2. Пустую коллекцию 3. Исключение Все правильные, выбор зависит уже от конкретного случая.
Option<User>
Ага, все правильные
Ещё есть негласная договорённость. Если getUserById, то исключение. Если findUserById то нулл
Кидать эксепшн в пыхе довольно дорого (для эксепшена собирается весь бектрейс), а юзать эксепшены для логики это все равно что юзать гоуту (возможны прыжки по стэку на несколько уровней)
find может вернуть null get не может и кидает исключение это конвенция
В чем дороговизна? Не встречал проблем с перформансом из-за здесь. Чтобы избегать разрыва пути ошибки "goto", следует делать rethrow на каждом уровне
Я там в скобках написал
Так это не дорого
Разница в разы
Обсуждают сегодня