Sorry to beat a dead horse, but I still have a question on the optional 'begin' sentiment when rescuing exceptions. It seems like the standing issue was with the use of it in brackets. Especially when deciding which exception to catch or adding an ensure.
Would this be unreasonable?
foo {
blah
rescue ExceptionA
handle A
rescue ExceptionB
handle B
ensure
finish things
}
Actually, it feels a little like a goto now that I type it out. That could be a bad sign....
-Mat
For one thing, it's syntactically incorrect, rescue can only appear
inside either a begin block, or in a method def, where def methodname
acts like begin for this purpose, or as a modifier on a single
statement.
···
On 8/25/06, Mat Schaffer <schapht@gmail.com> wrote:
Sorry to beat a dead horse, but I still have a question on the
optional 'begin' sentiment when rescuing exceptions. It seems like
the standing issue was with the use of it in brackets. Especially
when deciding which exception to catch or adding an ensure.
Would this be unreasonable?
foo {
blah
rescue ExceptionA
handle A
rescue ExceptionB
handle B
ensure
finish things
}
On 8/25/06, Mat Schaffer <schapht@gmail.com> wrote:
Sorry to beat a dead horse, but I still have a question on the
optional 'begin' sentiment when rescuing exceptions. It seems like
the standing issue was with the use of it in brackets. Especially
when deciding which exception to catch or adding an ensure.
Would this be unreasonable?
foo {
blah
rescue ExceptionA
handle A
rescue ExceptionB
handle B
ensure
finish things
}
For one thing, it's syntactically incorrect, rescue can only appear
inside either a begin block, or in a method def, where def methodname
acts like begin for this purpose, or as a modifier on a single
statement.
Well re-proposing it anyway. I'm mostly curious if there's some
fundamental problem with it that I'm not seeing. Since this
particular syntax wasn't proposed the last time the discussion went
around.
-Mat
···
On 8/25/06, Hal Fulton <hal9000@hypermetrics.com> wrote:
Rick DeNatale wrote:
> On 8/25/06, Mat Schaffer <schapht@gmail.com> wrote:
>
>> Sorry to beat a dead horse, but I still have a question on the
>> optional 'begin' sentiment when rescuing exceptions. It seems like
>> the standing issue was with the use of it in brackets. Especially
>> when deciding which exception to catch or adding an ensure.
>>
>> Would this be unreasonable?
>>
>> foo {
>> blah
>> rescue ExceptionA
>> handle A
>> rescue ExceptionB
>> handle B
>> ensure
>> finish things
>> }
>>
>
> For one thing, it's syntactically incorrect, rescue can only appear
> inside either a begin block, or in a method def, where def methodname
> acts like begin for this purpose, or as a modifier on a single
> statement.
IIRC, Matz thinks it's ugly (I can't say I disagree, even though I
desire the functionality). I think it's one of the few cases where
it's worth the ugliness to be orthogonal here.
Most people won't like how {} with rescue looks and probably switch to
do/end if the need rescue. The *only* think I can think of is maybe:
foo { bar rescue nil }
Is that still the post version?
-austin
···
On 8/27/06, Mat Schaffer <schapht@gmail.com> wrote:
> >> Would this be unreasonable?
> >>
> >> foo {
> >> blah
> >> rescue ExceptionA
> >> handle A
> >> rescue ExceptionB
> >> handle B
> >> ensure
> >> finish things
> >> }
> >>
Well re-proposing it anyway. I'm mostly curious if there's some
fundamental problem with it that I'm not seeing. Since this
particular syntax wasn't proposed the last time the discussion went
around.
> > >> Would this be unreasonable?
> > >>
> > >> foo {
> > >> blah
> > >> rescue ExceptionA
> > >> handle A
> > >> rescue ExceptionB
> > >> handle B
> > >> ensure
> > >> finish things
> > >> }
> > >>
> Well re-proposing it anyway. I'm mostly curious if there's some
> fundamental problem with it that I'm not seeing. Since this
> particular syntax wasn't proposed the last time the discussion went
> around.
IIRC, Matz thinks it's ugly (I can't say I disagree, even though I
desire the functionality). I think it's one of the few cases where
it's worth the ugliness to be orthogonal here.
Unless we try to be orthogonal in a different way like e.g.
do,begin => {
end => }
rescue => who am I to propose something here, but a short "symbol rather
than keyword"
is in my mind, maybe let us look at some
enusre => see above
{
stupid
? # too overloaded cannot be used in the same line with stupid
intelligent
}
{
stupid
>>> # just kidding
intelligent
<<< # see above
necessary
}
{
stupid
?? StupidError => se
intelligent
!!
necessary
}
Hmm I think it was worth spelling it out => UGLY
Robert
···
On 8/28/06, Austin Ziegler <halostatue@gmail.com> wrote:
On 8/27/06, Mat Schaffer <schapht@gmail.com> wrote:
Most people won't like how {} with rescue looks and probably switch to
do/end if the need rescue. The *only* think I can think of is maybe: