mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
be7b0bc3ec
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.
33 lines
658 B
PHP
33 lines
658 B
PHP
--TEST--
|
|
Generator::throw() where the generator throws a different exception
|
|
--FILE--
|
|
<?php
|
|
|
|
function gen() {
|
|
try {
|
|
yield;
|
|
} catch (RuntimeException $e) {
|
|
echo 'Caught: ', $e, "\n\n";
|
|
|
|
throw new LogicException('new throw');
|
|
}
|
|
}
|
|
|
|
$gen = gen();
|
|
var_dump($gen->throw(new RuntimeException('throw')));
|
|
|
|
?>
|
|
--EXPECTF--
|
|
Caught: exception 'RuntimeException' with message 'throw' in %s:%d
|
|
Stack trace:
|
|
#0 {main}
|
|
|
|
|
|
Fatal error: Uncaught exception 'LogicException' with message 'new throw' in %s:%d
|
|
Stack trace:
|
|
#0 [internal function]: gen()
|
|
#1 %s(%d): Generator->throw(Object(RuntimeException))
|
|
#2 {main}
|
|
thrown in %s on line %d
|
|
|