diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-04-01 13:49:11 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-04-01 13:49:11 +0300 |
| commit | 18f3d5490ac15c82263f158d36a22652ad831a3e (patch) | |
| tree | 2d2994761b4ab179c3144b62fdc6f14f992f8d79 | |
| parent | 3ba4c7a1377964387c2fe122a9ef74c04a62e6c6 (diff) | |
| download | php-git-18f3d5490ac15c82263f158d36a22652ad831a3e.tar.gz | |
Convert fatal error into EngineException
| -rw-r--r-- | Zend/tests/generators/errors/resume_running_generator_error.phpt | 9 | ||||
| -rw-r--r-- | Zend/zend_generators.c | 3 |
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 */ |
