Нулевая цепочка проверок против перехвата NullPointerException

Веб-сервис возвращает огромный XML, и мне нужно получить доступ к его глубоко вложенным полям. Например:

return wsObject.getFoo().getBar().getBaz().getInt()

Проблема в том, чтоgetFoo(), getBar(), getBaz() может все вернутьсяnull.

Однако, если я проверюnull во всех случаях код становится очень многословным и трудным для чтения. Более того, я могу пропустить проверки некоторых полей.

if (wsObject.getFoo() == null) return -1;
if (wsObject.getFoo().getBar() == null) return -1;
// maybe also do something with wsObject.getFoo().getBar()
if (wsObject.getFoo().getBar().getBaz() == null) return -1;
return wsObject.getFoo().getBar().getBaz().getInt();

Это приемлемо, чтобы написать

try {
    return wsObject.getFoo().getBar().getBaz().getInt();
} catch (NullPointerException ignored) {
    return -1;
}

или это будет считаться антипаттерном?

Ответы на вопрос(19)

Ваш ответ на вопрос