Рассмотрим следующий код:
Foo result = array[index];
index = (index + 1) % array.length;
return result;
Для выполнения некоторых финальных действий требуется дополнительная переменная. Имеет ли смысл написать это как:
try {
return array[index];
} finally {
index = (index + 1) % array.length;
}
или это повлияет на производительность? Обычно это считается хорошей / плохой практикой, и если да, то почему?
(В примере предполагается, что index
является допустимым индексом для array
, и код не будет выдавать ArrayIndexOutOfBoundsException
)
Редактировать: вопрос не в необходимости использования try-finally
, а в том, чтобы получить какой-либо выигрыш или потерю в производительности, которую я получаю, решив это сделать. Без этого переменная создается. С его помощью возвращаемое значение сохраняется где-то еще, возможно, более эффективным способом.