У меня есть класс, который должен обернуться вокруг строк, найденных во входном файле. Контракт заключается в том, что эти файлы содержат несколько записей (разделенных # символами), если быть точным: как минимум две записи должны появиться из этого файла.
Теперь я могу сделать это:
public MyWrapper(List<String> fileEntries) {
if (fileEntries.size() < 2) {
throw new IllegalArgumentException("Not enough entries ...
}
или я мог бы просто сделать:
public MyWrapper(List<String> fileEntries) {
this.firstEntry = fileEntries.get(0);
this.secondEntry = someMethodThatMergesAllRemainingEntries(fileEntries);
Эта вторая часть в какой-то момент выдаст ArrayIndexOutOfBound.
Мой вопрос: есть ли какой-нибудь прецедент в стандартной библиотеке Java, которую можно рассматривать как руководство? (аналогично вызову стандартной библиотеки Java requireNonNull()
, который говорит нам, возможно, предпочтительнее бросить NPE вместо IllegalArgumentException для нулевых аргументов).
Примечание: я не спрашиваю "что бы«Будь лучше», у обеих сторон есть свои плюсы и минусы (я немного склонен предпочесть вариант 1, так как он просто короче).