scope(failure): get exception

Jacob Carlborg doob at me.com
Sun Oct 28 05:08:50 PDT 2012


On 2012-10-26 23:56, Jonathan M Davis wrote:

> Yes. It lowers to a try-catch block, but that's effectively an implementation
> detail. As it stands, technically speaking, a compiler could probably
> implement it without any lowering whatsoever (I don't think that the spec says
> anything about how it's implemented). But even if the compiler has to use
> lowering, the main problem with your suggestion is that in complicates how
> scope statements work, since then it's only going to be run if the exception
> type being caught matches what was being thrown, whereas right now
> scope(failure) statements run on all exceptions regardless. And scope
> statements aren't really meant for exception handling. Rather, they're
> intended for providing a clean means of making code exception-safe. So, I
> suspect that what you suggest would be rejected, but I don't know. You can
> certainly create an enhancement request for it if you want to:

What about allowing catch-statements without a try-statement, something 
like this:

void foo ()
{
     // some code ...

     catch (Exception e)
     {

     }
}

This would be the same as the whole function would be wrapped in a 
try-statement. It's a quite handy feature that's available in Ruby.

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list