First, I simply don't agree with the statement that "x += 1" is a rarity in readable code. But that's not something we can measure without an objective measure of readibility, so let's move on. However, to address the specific example, I would just use each_with_index: > counter = 0 > array_of_stuff.each { > |element| > if elementIsScrewy(element) > raise "Whoa, element is screwy! #{element.inspect}, " + > "look for the problem #{counter} elements into the page" > end > result = doSomethingWithElement(element) > ... > counter += 1 > } array_of_stuff.each_with_index { |element, counter| if elementIsScrewy(element) raise "Whoa, element is screwy! #{element.inspect}, " + "look for the problem #{counter} elements into the page" end result = doSomethingWithElement(element) ... }