On Sunday, 3 August 2014 at 15:28:43 UTC, Manu via Digitalmars-d wrote:
I'm trying to make better use of scope guards, but I find myself belting
out try/catch statements almost everywhere.
I'm rather disappointed, because scope guards are advertised to offer the promise of eliminating try/catch junk throughout your code, and I'm just
not finding that to be the practical reality.

scope guards are for the occasions when you need to guarantee that something happens when either an exception isn't thrown (success), is thrown (failure), or regardless of whether one was thrown (exit). It's not intended for handling exceptions, just to reacting to their existence.

So, it's primarily going to be used when you want to do something when an exception was thrown but don't care what was thrown or if you want to make sure that something happens regardless of whether an exception was thrown (in which case, it's a replacement for RAII or a finally block).

I'd say that if you're trying to use scope in any situation where you'd try and handle an exception, then you're using it wrong.

- Jonathan M Davis

Reply via email to