Null Check Chain vs Fang NullPointerException

Ein Webdienst gibt eine riesige XML-Datei zurück, und ich muss auf tief verschachtelte Felder zugreifen. Beispielsweise

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

Das Problem ist, dassgetFoo(), getBar(), getBaz() können alle zurücknull.

Allerdings, wenn ich nach @ schanull In allen Fällen ist der Code sehr ausführlich und schwer zu lesen. Außerdem kann es sein, dass ich bei einigen Feldern die Schecks verpasse.

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();

Ist es akzeptabel zu schreiben

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

Oder wäre das ein Gegenmuster?

Antworten auf die Frage(38)

Ihre Antwort auf die Frage