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?