class StopIteration - RDoc Documentation

# 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 click to toggle source

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

    static VALUE
    stop_result(VALUE self)
    {
        return rb_attr_get(self, id_result);
    }