首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Generator::throw

(PHP 5 >= 5.5.0, PHP 7)

Generator :: throw - 向生成器中置入一个特例

描述

代码语言:javascript
复制
public mixed Generator::throw ( Throwable $exception )

向生成器中引发异常并恢复生成器的执行。行为将与当前的yield表达式被throw $ exception语句替换时相同。

如果在调用此方法时生成器已关闭,则将在调用者的上下文中抛出异常。

参数

exception

置入发生器的特例。

返回值

返回已产生的值。

更新日志

Version

Description

7.0.0

The exception parameter also accepts Throwable now.

例子

示例#1将异常投入到生成器中

代码语言:javascript
复制
<?php
function gen() {
    echo "Foo\n";
    try {
        yield;
    } catch (Exception $e) {
        echo "Exception: {$e->getMessage()}\n";
    }
    echo "Bar\n";
}
 
$gen = gen();
$gen->rewind();
$gen->throw(new Exception('Test'));
?>

上面的例子将输出:

代码语言:javascript
复制
Foo
Exception: Test
Bar

← Generator::send

Generator::valid →

扫码关注腾讯云开发者

领取腾讯云代金券