confusion with inline rescue

18 views
Skip to first unread message

Love U Ruby

unread,
May 12, 2013, 2:30:01 PM5/12/13
to rubyonra...@googlegroups.com
I am not getting any output:

can any one point me by saying where did I wrong?

ar = [1,2,3,1,5,3,"a","b","c"]
e = ar.each_slice(3)
e.size.times{|i| i = e.next; p i if (e.peek rescue StopIteration) == nil
}

I want the output: ["a","b","c"] but getting nothing.

--
Posted via http://www.ruby-forum.com/.

Love U Ruby

unread,
May 12, 2013, 3:31:38 PM5/12/13
to rubyonra...@googlegroups.com
Here I have done:

ar = [1,2,3,1,5,3,"a","b","c"]
e = ar.each_slice(3)
e.size.times{|i| i = e.next;p i if !(e.peek rescue nil) }
#=> ["a", "b", "c"]

Frederick Cheung

unread,
May 13, 2013, 4:49:19 AM5/13/13
to rubyonra...@googlegroups.com


On Sunday, May 12, 2013 7:30:01 PM UTC+1, Ruby-Forum.com User wrote:
I am not getting any output:

can any one point me by saying where did I wrong?

ar = [1,2,3,1,5,3,"a","b","c"]
e = ar.each_slice(3)
e.size.times{|i| i = e.next; p i if (e.peek rescue StopIteration) == nil
}

I want the output: ["a","b","c"] but getting nothing.

with the statement modifier form of rescue you can't specify a type of exception to rescue, so when e.peek raises

    (e.peek rescue StopIteration)
 
evaluates to StopIteration, which isn't nil

Fred
Reply all
Reply to author
Forward
0 new messages