Alexey Verkhovsky wrote: > On Sun, 2004-07-18 at 03:04, Mark Hubbart wrote: > >>I'm not sure that an exception would be The Right Thing > > A smilie was inadvertently omitted in my earlier post. It should have > said "The Right Thing (TM) :)" > > :) > > Life is full of compromises, and on the issue of what to do with stale > iterators, there are at least three choices: > > 1. Nothing (fast and dangerous) > 2. Iterate over a copy (safe and slow) > 3. Iterate over the original, but detect stale iterators (the middle > way, much safer than 1 and somewhat faster than 2). > > Each of the three choices has pros and cons. > > All I'm saying is that in my personal experience Java's > ConcurrentModificationException has prevented or exposed many bugs that > otherwise would be subtle and probably very costly affairs. Which is why > I like it. > > But then, the most important difference between Ruby and Java is that > the former lets you do anything, and that includes shooting yourself in > the foot, too. The latter, meantime, does not believe that you REALLY > know what you are doing. :) > > Best regards, > Alex > > > > One alternative solution is to provide for all three options using a resettable flag. Kinda like $SAFE for security.