[#6363] Re: rescue clause affecting IO loop behavior — ts <decoux@...>

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

17 messages 2000/11/14
[#6367] Re: rescue clause affecting IO loop behavior — David Alan Black <dblack@...> 2000/11/14

Hello again --

[#6582] best way to interleaf arrays? — David Alan Black <dblack@...>

Hello --

15 messages 2000/11/26

[#6646] RE: Array Intersect (&) question — Aleksi Niemel<aleksi.niemela@...>

Ross asked something about widely known and largely ignored language (on

23 messages 2000/11/29
[#6652] RE: Array Intersect (&) question — rpmohn@... (Ross Mohn) 2000/11/29

aleksi.niemela@cinnober.com (Aleksi Niemel) wrote in

[#6723] Re: Array Intersect (&) question — Mathieu Bouchard <matju@...> 2000/12/01

> >Use a hash. Here's code to do both and more. It assumes that

[#6656] printing/accessing arrays and hashes — raja@... (Raja S.)

I'm coming to Ruby with a Python & Common Lisp background.

24 messages 2000/11/30

[ruby-talk:6368] Re: rescue clause affecting IO loop behavior

From: Dave Thomas <Dave@...>
Date: 2000-11-14 19:20:42 UTC
List: ruby-talk #6368
David Alan Black <dblack@candle.superlink.net> writes:

> "Programming Ruby" also does not indicate that a begin/end block should act any
> differently because it has one or more rescue clauses.  In discussing while/until
> modifiers, it says:
> 
>   [given this: expression until boolean-expression]
>   If expression is a begin/end block, the block will always be executed at least one time
> 
> and elsewhere: "Exceptions may be handled within the scope of a begin/end block."
> There's no indication that putting a rescue clause in, or taking one out, will affect
> the basic behavior of blocks (including begin...end until boolean).
> 
> I sort of hope it turns out to be a (fixable) problem in Ruby, rather than a
> problem in the docs :-)  

So do I ;-)

To be honest, I hadn't come across this behavior in the past.

Something else missing from the book is the fact that method
definitions are treated as begin/rescue/end blocks:

   def fred
     open("xsdsd", "r")
   rescue
     puts "Failed to open"
   ensure
     puts "Got here"
   end

   fred

=>

   Failed to open
   Got here

This one kind of snuck up on us, and we didn't have time to add it
before printing.


"If it's on paper, it's out of date"


Dave

In This Thread