Если у меня есть функция, показанная ниже, с двумя вариантами выбора
private MyObject findBlank() {
for (int i = 0; i < pieces.length; i++) {
if(pieces[i].isBlank()){
return pieces[i];
}
}
return null;
}
private MyObject findBlank() {
for (int i = 0; i < pieces.length; i++) {
if(pieces[i].isBlank()){
return pieces[i];
}
}
throw new NoSuchFieldError("No blank piece found!");
}
Из этого метода я знаю, что он всегда должен возвращать объектодна из "кусков" всегда isBlank() == true
, нуль в конце возвращается только для того, чтобы угодить компилятору.Поскольку это так, и мой код в любом случае не будет работать, если он вернет ноль, правильно ли это, чтобы генерировать исключение?
Мои варианты:
Я думаю, что я спрашиваю, это правильное место для создания исключения? то есть я ничего не могу с этим поделать, если он попадет в ситуацию. Это классифицируется как «исключительное» или я должен проверить, что возвращает мой метод (из-за чего мой код выглядит ужасно). Если я знаю, что он не должен возвращать значение null, тогда я должен выдать исключение, верно?
Кроме того, как мне выбрать, какое исключение, или расширить его и создать собственное?