comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: About String
Date: Sun, 08 Jun 2008 14:32:36 -0400
Date: 2008-06-08T14:32:36-04:00	[thread overview]
Message-ID: <wccod6bu69n.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 484b802a$0$23844$4f793bc4@news.tdc.fi

Niklas Holsti <niklas.holsti@tidorum.invalid> writes:

> Chris Moore wrote:
>> I have to say this is an entirely non-intuitive "feature" of the language.
>
> I beg to differ. The program should be read as
>
>     declare <some variables>
>     begin <do something with those variables> end;
>
> The exception handler is within the "begin..end" block, not on the
> "declare".

Sure, that's right, but the syntax doesn't make it clear.
We have ample proof that this syntax is confusing:
More than one person in this thread has admitted to
being confused -- QED.  ;-)

I think it was a mistake to attach exception handlers
to declare blocks and procedures and so forth.  Instead,
there should be a single statement for handling exceptions,
as in Java and other languages.  Something like:

    handle
        ... statements ...
    exception
        when ... =>
            ...
    end;

>... (Indenting the "begin..exception..end" structure one level
> beyond the "declare" would make this more visible, but is not common
> practice.)

And it violates the recommended indentation defined by the RM.

Anyway, surely "end" belongs at the same column as "declare"
or "procedure" or whatever it's ending.

> I wonder if it would be a good idea for Ada to allow an exception
> handler also in the "declare" part, as follows:

That goes in the opposite direction I suggested above.
I think it would add confusion.

- Bob



  parent reply	other threads:[~2008-06-08 18:32 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-06 17:29 About String Sébastien Morand
2008-06-07 16:18 ` Simon Wright
2008-06-07 17:01   ` Pascal Obry
2008-06-07 22:13     ` Chris Moore
2008-06-08  6:47       ` Niklas Holsti
2008-06-08  7:35         ` Dmitry A. Kazakov
2008-06-08 10:29           ` Sebastien Morand
2008-06-08 10:53             ` Dmitry A. Kazakov
2008-06-08 11:14           ` Niklas Holsti
2008-06-08 13:16             ` Dmitry A. Kazakov
2008-06-08 17:17               ` Niklas Holsti
2008-06-09  7:26                 ` Dmitry A. Kazakov
2008-06-08 11:48           ` Martin
2008-06-08 13:17             ` Conditional declarations (was: About String) Dmitry A. Kazakov
2008-06-08 18:26           ` About String Chris Moore
2008-06-08 18:32         ` Robert A Duff [this message]
2008-06-08 20:51           ` Maciej Sobczak
2008-06-08 21:19             ` Robert A Duff
2008-06-09  7:14               ` Dmitry A. Kazakov
2008-06-09  9:43                 ` Georg Bauhaus
2008-06-09 10:25                   ` Dmitry A. Kazakov
2008-06-09 10:42                     ` Sébastien Morand
2008-06-09 11:43                     ` Georg Bauhaus
2008-06-09 12:03                       ` Dmitry A. Kazakov
2008-06-15 19:38                 ` Robert A Duff
2008-06-15 20:52                   ` Dmitry A. Kazakov
2008-06-15 22:06                     ` Robert A Duff
2008-06-16  8:31                       ` Dmitry A. Kazakov
2008-06-16 19:17                         ` Robert A Duff
2008-06-16 20:30                           ` Dmitry A. Kazakov
2008-06-16 22:02                           ` Georg Bauhaus
2008-06-16 23:04                             ` Robert A Duff
2008-06-09 11:00               ` Georg Bauhaus
2008-06-09 14:27                 ` Britt Snodgrass
2008-06-15 19:50                   ` Robert A Duff
2008-06-15 19:48                 ` Robert A Duff
2008-06-08 11:13     ` Simon Wright
2008-06-08 19:03       ` Sebastien Morand
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox