Cadeia de verificação nula vs captura de NullPointerException
Um serviço da Web retorna um XML enorme e eu preciso acessar campos profundamente aninhados. Por exemplo:
return wsObject.getFoo().getBar().getBaz().getInt()
O problema é quegetFoo()
, getBar()
, getBaz()
todos podem retornarnull
.
No entanto, se eu procurarnull
em todos os casos, o código se torna muito detalhado e difícil de ler. Além disso, posso perder as verificações de alguns dos campos.
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();
É aceitável escrever
try {
return wsObject.getFoo().getBar().getBaz().getInt();
} catch (NullPointerException ignored) {
return -1;
}
ou isso seria considerado um antipadrão?