2010-10-02 4 views
1

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

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

Что следует делать Exception?

ответ

6
+0

Это очевидно? :) – Starkey

+0

Спасибо, я искал исключения, которые реализуют ['Exception'] (http://download.oracle.com/javase/6/docs/api/java/lang/Exception.html) Теперь, когда это выполняет «RuntimeException» - это то, что называется «неконтролируемым» исключением? и есть ли что-нибудь, о чем я должен думать при использовании такого исключения? – Jonas

+1

Да, 'RuntimeException' не сняты. Вы можете прочитать все об этом здесь: [Unchecked Exceptions - The Controversy] (http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html) – NullUserException

1

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

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

Смежные вопросы