DIP 1002 (TryElseExpression) added to the queue

pineapple via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 28 13:18:06 PDT 2016


On Wednesday, 28 September 2016 at 17:56:13 UTC, Steven 
Schveighoffer wrote:
> The more I think about this submission, I feel like the 
> benefits are quite slim.

This is not and was not intended to be a glorious, incredible 
addition to the language. It is meant to shove D a couple inches 
further in the direction of modern programming constructs. 
Everywhere a programmer can use `else` instead of mucking about 
with a boolean success flag and having to make absolutely sure 
the code intended to handle a success state doesn't and will 
never be modified to throw an exception that the error handling 
code isn't designed for means less time spent on tedium, and less 
opportunity for programmer error.

On Wednesday, 28 September 2016 at 17:56:13 UTC, Steven 
Schveighoffer wrote:
> For example, should it be valid to use "else" without a catch?

Yes.

On Wednesday, 28 September 2016 at 17:56:13 UTC, Steven 
Schveighoffer wrote:
> The boolean to indicate an exception was thrown is cumbersome, 
> but not horrible. Having the compiler manage the boolean may 
> make this cleaner (e.g. finally(bool thrown)), I like it better 
> than the else suggestion.

I think this would be an improvement over the current exception 
handling, but `else` is a pre-existing concept and making 
`finally` optionally accept a boolean this way tosses convention 
on its head, and not in a way I think is desireable. If what 
you're looking for is a clean solution, `finally(bool)` is 
definitely not it.

Moreover, Idan's suggestions about scope sharing make sense to me 
and I don't think his line of thinking would be compatible with 
doing it the way you suggest.



More information about the Digitalmars-d mailing list