php-src/Zend/tests/generators/throw_caught.phpt
Nikita Popov be7b0bc3ec Implement Generator::throw() method
Generator::throw($exception) throws an exception into the generator. The
exception is thrown at the current point of suspension within the generator.
It basically behaves as if the current yield statement were replaced with
a throw statement and the generator subsequently resumed.
2012-12-24 00:27:55 +01:00

26 lines
408 B
PHP

--TEST--
Generator::throw() where the exception is caught in the generator
--FILE--
<?php
function gen() {
try {
yield;
} catch (RuntimeException $e) {
echo $e, "\n\n";
}
yield 'result';
}
$gen = gen();
var_dump($gen->throw(new RuntimeException('Test')));
?>
--EXPECTF--
exception 'RuntimeException' with message 'Test' in %s:%d
Stack trace:
#0 {main}
string(6) "result"