summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-04-01 13:49:11 +0300
committerDmitry Stogov <dmitry@zend.com>2015-04-01 13:49:11 +0300
commit18f3d5490ac15c82263f158d36a22652ad831a3e (patch)
tree2d2994761b4ab179c3144b62fdc6f14f992f8d79
parent3ba4c7a1377964387c2fe122a9ef74c04a62e6c6 (diff)
downloadphp-git-18f3d5490ac15c82263f158d36a22652ad831a3e.tar.gz
Convert fatal error into EngineException
-rw-r--r--Zend/tests/generators/errors/resume_running_generator_error.phpt9
-rw-r--r--Zend/zend_generators.c3
2 files changed, 10 insertions, 2 deletions
diff --git a/Zend/tests/generators/errors/resume_running_generator_error.phpt b/Zend/tests/generators/errors/resume_running_generator_error.phpt
index 567d72f3f9..9a39155d38 100644
--- a/Zend/tests/generators/errors/resume_running_generator_error.phpt
+++ b/Zend/tests/generators/errors/resume_running_generator_error.phpt
@@ -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
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
index b1fcdea056..a64f341837 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -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 */