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