since you raise here and break out of the loop, i think you can move the rescue out of the loop entirely and just rescue at the end of the method...   that'll make the loop read a little tighter...