0
をコンパイルする私は、次の機能を持っている:がエラー
private Box retrieveBox() {
BoxParameter param = new BoxParameter("red", 10, 5, 3);
List<Long> boxIds = boxDao.retrieveByParameter(param);
if (boxIds.isEmpty()) {
// A
logger.warn("box not found");
throw new BoxNotFoundException();
}
if (boxIds.size() > 1) {
// B
logger.warn("multiple boxes found");
throw new MultipleBoxesFoundException();
}
Optional<Box> maybe = boxDao.retrieve(boxIds.get(0));
if (maybe.isPresent()) {
return maybe.get();
}
// C
logger.warn("box not found");
throw new BoxNotFoundException();
}
私は法にログインし、例外をリファクタリングしようとするとlogWarningAndThrowException()
と呼ばれ、私はそれを見つけた:
- A及びBは、
- Cを方法中に抽出された場合、Eclipseは
私はその理由が不思議です。
Cをメソッドに抽出する方法はありますか?
あなたのリファクタリングされたコードを見ることなく、それを伝えることは不可能です。 – stdunbar
コードレビューから[codereview](http://codereview.stackexchange.com/questions/129976/throwing-exceptions-if-there-is-not-exactly-one-box-retrieved)の質問をしました視点。 –