On Monday, 30 January 2012 at 14:50:23 UTC, Adam D. Ruppe wrote:
On Monday, 30 January 2012 at 14:37:19 UTC, Jared wrote:
In Java and C++, I can do something to the effect of:

That works in D too.

I believe it does it linearly though, so it will use the
first catch that matches.

try {}
catch (Exception e) {} // most throwable objects derive from Exception catch (SpecialException e) {} // never used, because Exception matches it all



Try putting the more specific catches first, and the generic
base classes at the end of the list.

To me this seems like a mistake. Since likely your catching the current exception and not one of the previously stored ones; A codepath like that should either:

A) Fail at compile time, hopefully telling you a suggested order so there's no problems.

B) Reorder the catch blocks on it's own during compile time, since only one can get caught at a time anyways.

At least that's how I see it.

Reply via email to