Exception: StopIteration
- Inherits:
-
IndexError
- Object
- Exception
- StandardError
- IndexError
- StopIteration
- Defined in:
- enumerator.c
Overview
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!
Instance Method Summary collapse
-
#result ⇒ Object
Returns the return value of the iterator.
Methods inherited from Exception
#==, #backtrace, #exception, exception, #initialize, #inspect, #message, #set_backtrace, #to_s
Constructor Details
This class inherits a constructor from Exception
Instance Method Details
#result ⇒ Object
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
p e.next #=> 1
p e.next #=> 2
p e.next #=> 3
begin
e.next
rescue StopIteration
p $!.result #=> 100
end
|
# File 'enumerator.c'
/*
* call-seq:
* stopiteration.result -> value
*
* 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
* p e.next #=> 1
* p e.next #=> 2
* p e.next #=> 3
* begin
* e.next
* rescue StopIteration
* p $!.result #=> 100
* end
*
*/
static VALUE
stop_result(VALUE self)
{
return rb_attr_get(self, rb_intern("result"));
}
|