Spesso mi sono imbattuto in situazioni come questa, come scrivere questo codice in modo pulito e ordinato. Un altro problema che trovo qui è la performance perché sto iterando un elenco e poi le sue proprietà.
Modifica: - mentre il suggerito come affrontare un indirizzo postale "a forma di freccia" ramificato " fa riferimento al nidificato if-elseif-if per una estensione estesa. Sto ancora cercando una risposta su come gestire più tentativi di cattura (se ce ne sono) nel codice e su come migliorare le prestazioni.
for (String item : someList) {
IResultOne resultOne = doSomething(item);
if (resultOne != null) {
for (SomeObject obj :resultOne.getSomeOtherList) {
IResultTwo resultTwo = doMegaProcessing(obj);
if(resultTwo != null) {
try {
doSomeMoreProcessing(resultTwo);
}
catch (CanNotProcessingException ex) {
errorObj.addError("can't process reason");
}
}
else {
errorObj.addError("item does not have {} error ");
}
}
}
else {
errorObj.addError("item is invalid "+item)
}
}