Generator::throw
Generator::throw
(PHP 5 >= 5.5.0, PHP 7)
Generator :: throw - 向生成器中置入一个特例
描述
public mixed Generator::throw ( Throwable $exception )
向生成器中引发异常并恢复生成器的执行。行为将与当前的yield表达式被throw $ exception语句替换时相同。
如果在调用此方法时生成器已关闭,则将在调用者的上下文中抛出异常。
参数
exception
置入发生器的特例。
返回值
返回已产生的值。
更新日志
Version | Description |
---|---|
7.0.0 | The exception parameter also accepts Throwable now. |
例子
示例#1将异常投入到生成器中
<?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')
?>
上面的例子将输出:
Foo
Exception: Test
Bar
← Generator::send
Generator::valid →