Confusion with inline rescue

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.

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”]

On Sunday, May 12, 2013 7:30:01 PM UTC+1, Ruby-Forum.com User wrote:

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