Generator::throw()

在生成器中抛出一个异常

首字母:G

函数名: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。

同首字母函数