Chained Catch Statements

Era Scarecrow rtcvb32 at yahoo.com
Mon Jan 30 08:55:58 PST 2012


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.


More information about the Digitalmars-d-learn mailing list