(again) Rescue clauses on do/end blocks?

M

Mat Schaffer

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
 
R

Rick DeNatale

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.
 
H

Hal Fulton

Rick said:
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.

Yes, but he's proposing a change in the syntax.

Hal
 
M

Mat Schaffer

Yes, but he's proposing a change in the syntax.

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
 
A

Austin Ziegler

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.

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,074
Latest member
StanleyFra

Latest Threads

Top