Thank you, I'd like to say I agree with you on this error should not run cleanup and your definition for when we don't want to run cleanup code is spot on. I'm also not looking to change the language spec. I'm still struggling with convincing myself that this thrown error more likely indicates a corrupt state than an exception.

This post will likely get long, I'm just hoping to articulate why I'm struggling to be in full agreement here.

On thing I keep thinking is, what about when I trying to write/read to the file and some code throws an Exception prior to the range access, cleanup would be run and no error in sight.

Then I think about, what if arrays threw an exception? Or why is it an error? Arrays make an agreement they will operate on valid input. If indexing outside the array then the operation "can't complete that task."

And to that, the reason arrays don't throw IndexOutOfBoundsException is because release will no longer check for that condition.

So I'm back to considering how come an RangeError has given a better indication that the program has entered an invalid state over getting an IOOBException.

What I've come to is that an Error makes an indication corruption has occurred more accurately than an Exception is because a program is expected never to hit an error, the only logical explanation is that either cosmic rays flipped some bits or another component of the program has overwritten this perfect section of code "I'm executing."

I think I'm satisfied with this. Thanks again.

Reply via email to