函数名:Generator::throw()
适用版本:PHP 5 >= 5.5.0, PHP 7
用法: Generator::throw() 方法用于在生成器中抛出一个异常。它允许在生成器的当前位置抛出异常,并在生成器的控制流中进行异常处理。
语法:
public void Generator::throw ( Throwable $exception )
参数:
- $exception:必需,要抛出的异常对象,必须是 Throwable 类的实例或其子类的实例。
返回值:
- 无返回值。
示例:
function myGenerator() {
yield 1;
yield 2;
yield 3;
}
$generator = myGenerator();
foreach ($generator as $value) {
try {
if ($value == 2) {
$generator->throw(new Exception('Value cannot be 2'));
}
echo $value . " ";
} catch (Exception $e) {
echo $e->getMessage() . " ";
}
}
输出:
1 Value cannot be 2 3
解释:
在上面的示例中,我们定义了一个生成器函数 myGenerator()
,它会生成数字 1、2 和 3。在 foreach
循环中,当遍历到值为 2 的时候,我们使用 Generator::throw()
方法抛出了一个异常。异常被捕获并输出了异常消息。因此,最终的输出结果是 1 Value cannot be 2 3
。