Cadena de comprobación nula frente a captura de NullPointerException
Un servicio web devuelve un XML enorme y necesito acceder a campos profundamente anidados. Por ejemplo:
return wsObject.getFoo().getBar().getBaz().getInt()
El problema es esegetFoo()
, getBar()
, getBaz()
que todos regresennull
.
Sin embargo, si busconull
En todos los casos, el código se vuelve muy detallado y difícil de leer. Además, puedo pasar por alto los controles de algunos de los 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();
¿Es aceptable escribir?
try {
return wsObject.getFoo().getBar().getBaz().getInt();
} catch (NullPointerException ignored) {
return -1;
}
o eso sería considerado un antipatrón?