On Sunday, November 22, 2015 07:41:40 Mike Parker via Digitalmars-d-learn wrote: > On Saturday, 21 November 2015 at 13:57:01 UTC, Shriramana Sharma > wrote: > > > > Hmm – I forgot Python has `else` for `for` and `while` too. But > > it's a tad difficult to wrap one's mind around the meaning of > > the word `else` in this particular context whereas it actually > > means `nobreak`. Perhaps if this were added to D, `default` > > would be a better choice of keyword, since we all know that > > `default` (as in `switch`) is not executed if `break` happens. > > > > So: > > > > try { code_which_can_throw(); } > > catch { handler(); } > > default { only_if_didnt_throw(); } > > finally { mandatory(); } > > > > How does that look? > > Ugly. There's absolutely zero need for this in D.
It's trivially changed to try { code_which_can_throw(); only_if_didnt_throw(); } catch { handler(); } finally { mandatory(); } So, even assuming that scope statements aren't the best fit (e.g. because you actually need access to the exception, or you don't want it to be rethrown from the catch block), the default block is pretty pointless as far as I can tell. - Jonathan M Davis