Chained Catch Statements
Era Scarecrow
rtcvb32 at yahoo.com
Mon Jan 30 11:35:27 PST 2012
On Monday, 30 January 2012 at 19:25:03 UTC, Jesse Phillips wrote:
> On Monday, 30 January 2012 at 18:23:56 UTC, Era Scarecrow wrote:
>> try {
>> } catch (Throwable t) {
>>
>> } catch {Exception e) { //never executed
>>
>> } catch (StreamException st) { //never executed
>>
>> } //and the list can go on forever.
>>
>> See the problem?
>
> No?
>
> Error: catch at test.d(3) hides catch at test.d(4)
>
> The compiler does not reorder the exceptions because it
> enforces order in the written code. As you say the compiler
> knows the relationship, the one reading it may not.
So long as it errors from the hiding (as it appears it does) then
it's fine, and the previous example shown was wrong.
>>> try {}
>>> catch (Exception e) {} // most throwable objects derive from
>>> Exception
>>> catch (SpecialException e) {} // never used, because
>>> Exception matches it all
More information about the Digitalmars-d-learn
mailing list