On this page
class StopIteration
Raised to stop the iteration, in particular by Enumerator#next. It is rescued by Kernel#loop.
loop do
  puts "Hello"
  raise StopIteration
  puts "World"
end
puts "Done!"
produces:
Hello
Done!
Public Instance Methods
 result → value  Show source
     
     static VALUE
stop_result(VALUE self)
{
    return rb_attr_get(self, id_result);
}Returns the return value of the iterator.
o = Object.new
def o.each
  yield 1
  yield 2
  yield 3
  100
end
e = o.to_enum
puts e.next                   #=> 1
puts e.next                   #=> 2
puts e.next                   #=> 3
begin
  e.next
rescue StopIteration => ex
  puts ex.result              #=> 100
end
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.