Какое исключение я должен бросить для "Нет такого элемента"? - PullRequest
2 голосов
/ 02 октября 2010

Я реализую метод, который ищет элемент в списке. Элемент должен существовать в списке. Вместо того, чтобы возвращать null, если элемент не существует, я хотел бы бросить Exception, но я новичок в обработке исключений в Java и не знаю, что Exception я должен выбросить в этом случае .

Я думаю, что это достаточно общий случай, поэтому я, вероятно, могу использовать один Exception, который уже существует в стандартной библиотеке Java SE.

Что Exception я должен бросить в этом случае?

Ответы [ 2 ]

6 голосов
/ 02 октября 2010
1 голос
/ 03 октября 2010

Лично я не думаю, что это заслуживает исключения.Существует бесконечно много элементов, которых нет в списке, поэтому тот факт, что элемент не может быть найден, вряд ли является исключительным, скорее это вполне нормально.Я бы предпочел какой-то тип Option или Maybe в качестве возвращаемого типа.

Я понятия не имею, почему такой тип еще не предоставлен JRE (мне кажется, это большой упущение)Так что, к сожалению, вам придется кататься самостоятельно.Тем не менее, вы можете найти множество примеров реализации Java типа Maybe и даже монады Maybe в Интернете.Это, кажется, довольно распространенный вводный пример для обучения дженерикам, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...