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?

Respuestas a la pregunta(19)

Su respuesta a la pregunta