Этот вопрос скорее основан на мнении, так же как и весь вопрос, возвращающий ноль / выбрасывающий исключение / возвращающий пустую дилемму объекта.
Лично я считаю, что возвращение -1
предназначено для первого метода, и было бы лучше выбросить исключения для вашего второго метода.
Следуя принципу единой ответственности , один метод должен делать одно.
Целью первого метода является поиск элемента, он может найти его или не найти. Это ожидаемое поведение .
Цель второго метода - купить билет. В отличие от первого метода, он не проверяет , может ли он купить билет или нет, он делает это. Ожидаемое поведение - билет куплен. Если такого поведения не происходит , что-то пошло не так, поэтому должно быть выдано исключение .
Я также думаю, что подход @ StriplingWarrior может быть не идеальным, потому что, если у вас более двух возможных случаев, вы не можете иметь Either<A, B, C, D, E, ...>
.
RIP. Я потратил 15 минут на написание ответа, и я случайно открыл веб-консоль и удалил тело. Последний сохраненный ответ был как 10 минут назад. Я даже не знаю, как вы можете сделать это случайно. Я думаю, F12
и DEL
довольно близко