Convert fatal error into EngineException

This commit is contained in:
Dmitry Stogov 2015-04-01 13:49:11 +03:00
parent 3ba4c7a137
commit 18f3d5490a
2 changed files with 10 additions and 2 deletions

View file

@ -5,7 +5,12 @@ It is not possible to resume an already running generator
function gen() {
$gen = yield;
$gen->next();
try {
$gen->next();
} catch (EngineException $e) {
echo "\nException: " . $e->getMessage() . "\n";
}
$gen->next();
}
$gen = gen();
@ -14,4 +19,6 @@ $gen->next();
?>
--EXPECTF--
Exception: Cannot resume an already running generator
Fatal error: Cannot resume an already running generator in %s on line %d

View file

@ -303,7 +303,8 @@ ZEND_API void zend_generator_resume(zend_generator *generator) /* {{{ */
}
if (generator->flags & ZEND_GENERATOR_CURRENTLY_RUNNING) {
zend_error_noreturn(E_ERROR, "Cannot resume an already running generator");
zend_error(E_EXCEPTION | E_ERROR, "Cannot resume an already running generator");
return;
}
/* Drop the AT_FIRST_YIELD flag */