I'm guessing you haven't seen a try/catch block in VB6 / VBA. It's not like a C code block; it's just another goto statement. What GP describes is much better because it's localized: control flow follows line after line. Try/catch blocks in VB6 scramble your control flow. And you still have lots of things you need to remember to do with that approach.