@Aaron said:@bjolling said:I would rather compare this pattern to the "using" block in C# because you should only use it when you have to free resources, like database connections and the like That's the only time you can use it. The using statement requires the target to implement IDisposable, which means that there are unmanaged resources to free. Unless the author of the component implemented IDisposable for no reason, but that's an edge case I wouldn't really concern myself with.So, no, not really such a great comparison. Not sure what you are disagreeing with. This is what I said:In C# you use the "using" block to free unmanaged resources (indeed like you say, on objects implementing the IDisposable interface, e.g. database connections)in VB6, you should use the OP's pattern only if you need to free resources like database connections, not for the joy of dereferencing local objectsIn my quote above, I have put "it" in bold. This "it" was referring to the OP's VB6 pattern (not to the using block). It's not the perfect comparison if you only look at the flow control which resembles more try-catch-finally like already mentioned. But I still believe that the usage of both patterns is very similar.